LLDB學(xué)習(xí)筆記(一)

這是我的個(gè)人博客主頁(可能要翻墻),最新的文章我會(huì)發(fā)布到個(gè)人博客,簡書可能稍有延遲,這是我的Github主頁

正文

  • LLDB是和GDB類似的命令行調(diào)試工具,許多命令和GDB一樣,為Xcode提供底層調(diào)試環(huán)境

  • LLDB開始于Xcode5

  • 我們可以使用命令別名功能來自定義LLDB,也可以通過Python腳本和Python-LLDB對(duì)象庫來擴(kuò)展LLDB

  • LLDB還可以在系統(tǒng)終端通過命令行來使用,對(duì)于非圖形窗口編碼的人來說比較重要

  • LLDB的語法大致如下(其實(shí)很多都和命令行挺類似的,這里為了整體,多描述一下):

          <command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]]
    

    command和subcommand是LLDB的調(diào)試對(duì)象,Command為Subcommand提供了上下文環(huán)境,action是在上下文中的想要執(zhí)行的動(dòng)作,option通常是一個(gè)值用于確定action具體操作,argument是我們傳入的參數(shù),上面幾個(gè)要素之間通過空格隔開,如果參數(shù)中有控制,那么要用引號(hào)或雙引號(hào)來保護(hù),如下:

          (lldb) command [subcommand] -option "some \"quoted\" string"
          或
          (lldb) command [subcommand] -option 'some "quoted" string'
    

    打斷點(diǎn)例子:

          (lldb) breakpoint set --file test.c --line 12
    
  • option可以有多個(gè)而且不分先后,還可以有縮寫和完整命令,如下:

          breakpoint set
          -M <method> ( --method <method> )
    

    -表示縮寫,--表示完整命令

  • 元命令(Raw Commands),元命令是當(dāng)我們吧所有option去掉之后,剩余的命令字符串會(huì)不經(jīng)過解析直接傳遞給命令;元命令對(duì)于一些復(fù)雜表示的參數(shù)很有用

  • LLDB在Xcode中或在終端中支持tab補(bǔ)全

  • 進(jìn)階的操作可以使用script命令來加載python腳本,具體參見鏈接1鏈接2

  • 命令別名(Command Aliases):用于自定義一些平時(shí)常用的語句,讓我們?cè)俅握{(diào)試的時(shí)候可以簡短方便,如下:

          (lldb) breakpoint set --file foo.c --line 12
          我們可以定義Command Aliases,%1及%2和shell一樣,用于獲取第一第二個(gè)參數(shù):
          (lldb) command alias bfl breakpoint set -f %1 -l %2
          后續(xù)操作的時(shí)候,我們可以這樣用:
          (lldb) bfl foo.c 12
    

    開發(fā)人員為LLDB提供了少數(shù)別名命令,比如step、next等;開發(fā)者可以通過~/.lldbinit文件來定義這些命令,LLDB會(huì)自動(dòng)去讀取,我們也可以通過help -a來查看當(dāng)前所有的別名命令
    我們還可以通過快捷方式來解綁和綁定命令與命令別名,如:

          (lldb) command unalias b // 解綁
          (lldb) command alias b breakpoint // 綁定
    
  • 幫助系統(tǒng):和bash一樣,可以通過help來查看LLDB的命令、子命令、選項(xiàng)等的幫助文檔,格式如help <command> <subcommand> [<subcommand>…];使用help可以查看命令的別名,如:help breakpoint = help b;通過(lldb) help <breakpt-id>查看參數(shù)的文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • [轉(zhuǎn)]淺談LLDB調(diào)試器文章來源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc閱讀 2,734評(píng)論 2 6
  • LLDB的Xcode默認(rèn)的調(diào)試器,它與LLVM編譯器一起,帶給我們更豐富的流程控制和數(shù)據(jù)檢測的調(diào)試功能。平時(shí)用Xc...
    CoderSC閱讀 1,501評(píng)論 0 2
  • Xcode 上的lldb LLDB 調(diào)試工具,gdb替代品;LLVM : Low Level Virtual Ma...
    helinyu閱讀 1,066評(píng)論 0 2
  • 隨著Xcode 5的發(fā)布,LLDB調(diào)試器已經(jīng)取代了GDB,成為了Xcode工程中默認(rèn)的調(diào)試器。它與LLVM編譯器一...
    隨風(fēng)飄蕩的小逗逼閱讀 1,460評(píng)論 0 0
  • 轉(zhuǎn)載 與調(diào)試器共舞 - LLDB 的華爾茲: https://objccn.io/issue-19-2/ 推薦:i...
    F麥子閱讀 3,454評(píng)論 0 10

友情鏈接更多精彩內(nèi)容