生活随笔
收集整理的這篇文章主要介紹了
                                
XCode的控制台调试命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                             XCode4.0以后,編譯器換成了LLVM 編譯器 2.0,與以前相比,更加強大:
  1.LLVM 編譯器是下一帶開源的編譯技術.完全支持C, Objective-C, 和 C++.
 2.LLVM 速度比 GCC快兩倍,建立的程序也會運行的更快. 因為它更好的利用現代的芯片的結構.
 3.LLVM和Xcode 4完全的整合在一起.包括關鍵字高亮,代碼完整性等全都是由LLVM語法分析器來分析的. 這樣可以在編輯的時候就可以很好的了解你的代碼.
  
 
  編譯器進化之后,控制臺調試命令前綴,也由原來的gdb更改成了lldb,所以當你看到控制臺沒有gdb而出現lldb的時候,不用驚慌,因為我們以前常用的調試命令依然可以使用:
  使用前提:
  1.既然是調試命令,理所當然的,程序模式應該選擇Debug模式。
  2.在Debug模式下,如果你的程序在運行中崩潰(Crash)掉,那么恭喜你,使用lldb調試的機會來了。
  符合以上兩個條件之后,控制臺(即日志輸出窗口All Output)會自動打出一個(lldb)命令,你在其后輸入bt,回車。
  恭喜你,這時Xcode會自動輸出最后的一次調用堆棧。如下:
  
    [cpp]?view plaincopyprint?     *?thread?#1:?tid?=?0x1f03,?0x0132edee?CoreFoundation`___forwarding___?+?206,?stop?reason?=?EXC_BREAKPOINT?(code=EXC_I386_BPT,?subcode=0x0)?? ????frame?#0:?0x0132edee?CoreFoundation`___forwarding___?+?206?? ????frame?#1:?0x0132ecb2?CoreFoundation`_CF_forwarding_prep_0?+?50?? ????frame?#2:?0x00002e60?testMVC`-[ViewCtrl2?touchesBegan:withEvent:]?+?128?at?ViewCtrl2.m:40?? ????frame?#3:?0x013c9e99?CoreFoundation`-[NSObject?performSelector:withObject:withObject:]?+?73?? ????frame?#4:?0x000ffc49?UIKit`forwardTouchMethod?+?268?? ????frame?#5:?0x000ffb38?UIKit`-[UIResponder?touchesBegan:withEvent:]?+?30?? ????frame?#6:?0x0003a2cf?UIKit`-[UIWindow?_sendTouchesForEvent:]?+?272?? ????frame?#7:?0x0003a5e6?UIKit`-[UIWindow?sendEvent:]?+?273?? ????frame?#8:?0x00020dc4?UIKit`-[UIApplication?sendEvent:]?+?464?? ????frame?#9:?0x00014634?UIKit`_UIApplicationHandleEvent?+?8196?? ????frame?#10:?0x012b2ef5?GraphicsServices`PurpleEventCallback?+?1274?? ????frame?#11:?0x0139c195?CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__?+?53?? ????frame?#12:?0x01300ff2?CoreFoundation`__CFRunLoopDoSource1?+?146?? ????frame?#13:?0x012ff8da?CoreFoundation`__CFRunLoopRun?+?2218?? ????frame?#14:?0x012fed84?CoreFoundation`CFRunLoopRunSpecific?+?212?? ????frame?#15:?0x012fec9b?CoreFoundation`CFRunLoopRunInMode?+?123?? ????frame?#16:?0x012b17d8?GraphicsServices`GSEventRunModal?+?190?? ????frame?#17:?0x012b188a?GraphicsServices`GSEventRun?+?103?? ????frame?#18:?0x00012626?UIKit`UIApplicationMain?+?1163?? ????frame?#19:?0x000026fa?testMVC`main?+?170?at?main.m:16?? ????frame?#20:?0x00002645?testMVC`start?+?53??  
 當然還有其他的命令(和gdb命令通用):  
  
    [cpp]?view plaincopyprint?     命令????????????????????????解釋???? break?NUM???????????????在指定的行上設置斷點。???? bt??????????????????????顯示所有的調用棧幀。該命令可用來顯示函數的調用順序。???? clear???????????????????刪除設置在特定源文件、特定行上的斷點。其用法為:clear?FILENAME:NUM。???? continue????????????????繼續執行正在調試的程序。該命令用在程序由于處理信號或斷點而導致停止運行時。???? display?EXPR????????????每次程序停止后顯示表達式的值。表達式由程序定義的變量組成。???? file?FILE???????????????裝載指定的可執行文件進行調試。???? help?NAME???????????????顯示指定命令的幫助信息。???? info?break??????????????顯示當前斷點清單,包括到達斷點處的次數等。???? info?files??????????????顯示被調試文件的詳細信息。???? info?func???????????????顯示所有的函數名稱。???? info?local??????????????顯示當函數中的局部變量信息。???? info?prog???????????????顯示被調試程序的執行狀態。???? info?var????????????????顯示所有的全局和靜態變量名稱。???? kill????????????????????終止正被調試的程序。???? list????????????????????顯示源代碼段。???? make????????????????????在不退出?gdb?的情況下運行?make?工具。???? next????????????????????在不單步執行進入其他函數的情況下,向前執行一行源代碼。???? print?EXPR??????????????顯示表達式?EXPR?的值。????? print-object????????????打印一個對象???? print?(int)?name??????打印一個類型???? print-object?[artist?description]???調用一個函數???? set?artist?=?@"test"????設置變量值???? whatis??????????????????查看變理的數據類型???  
   使用lldb調試工具,結合NSZombieEnabled?一起使用,實在是查找crash的一大利器啊,很是方便!
  
    本文轉載自:http://blog.csdn.net/likendsl/article/details/7576549
                            總結
                            
                                以上是生活随笔為你收集整理的XCode的控制台调试命令的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。