使用LLDB調試程序

jopen 10年前發布 | 35K 次閱讀 LLDB 程序調試
 

簡述

LLDB是XCode下默認的調試工具,蘋果向來都會把界面做得很好,XCode中的lldb也不例外:無縫集成,方便簡單。 嗯,casa是命令行控,也不喜歡簡單玩法,所以這篇文章要講的是用命令行LLDB來調試C程序。 LLDB和GDB有很多 相似之處 ,如果你GDB玩得比較熟,那么相信你LLDB一會兒就能上手了。閱讀這篇文章不需要有GDB的基礎。 系好安全帶,打起精神,我們開始了。

如果你是因為不知道怎么退出lldb才搜到這篇文章的, 直接告訴你退出命令就是quit, 你可以關網頁去愉快地玩耍啦。

準備工作

1. 安裝lldb

Ubuntu用戶:

使用LLDB調試程序

Mac用戶:

使用LLDB調試程序

Windows用戶:

使用LLDB調試程序

2. 寫一段C程序,記得編譯成可執行文件

程序自己隨便寫一個就好了,來個if-else判斷, 然后有一個隨便你做什么的子函數,然后輸出個helloworld就好。編譯時記得帶-g參數,這樣編譯器就能在編譯時候提供調試時所需要的一些信息。

lldb調試之旅

進入調試狀態

1. 調試可執行文件

使用LLDB調試程序

2. 調試運行時帶參數的可執行文件

如果運行這個程序時是要帶參數的,那么就這樣:

使用LLDB調試程序 3. 調試某個正在運行中的進程

使用LLDB調試程序

看代碼

進入到調試狀態之后, lldb和gdb一樣,也給了你看代碼的命令: list或l, 但只有在編譯時候帶-g才能看哦

1. 使用list看代碼

使用LLDB調試程序

tips:

不輸入命令的時候直接按回車,就會執行上一次執行的命令。

一直list到底了之后再list就沒有了,這時候怎么辦?list 1就回到第一行了。l 13就是從第13行開始往下看10行。

2. 看其他文件的代碼

如果你的這個程序編譯的時候是由很多文件組成的,那么就可以使用list 文件名看其他文件的代碼, 以后再執行list 3的時候,看的就是你前面設置的文件名的第三行

使用LLDB調試程序

3. 看某個函數的代碼

使用LLDB調試程序

下斷點

我們把調試器掛上程序了,也看到代碼了,接下來就是找一個地方下斷點,然后讓程序跑起來,看看這里面到底發生了些什么~o

1. 根據文件名和行號下斷點

使用LLDB調試程序

2. 根據函數名下斷點

使用LLDB調試程序

3. 根據某個函數調用語句下斷點(Objective-C比較有用)

使用LLDB調試程序

4. 一個小技巧

你可以通過設置命令的別名來簡化上面的命令

使用LLDB調試程序

5. 查看斷點列表、啟用/禁用斷點、刪除斷點

使用LLDB調試程序

運行環境操作

1. 啟動

OK, 我們前面已經下好斷點了,現在就要啟動這個程序了!前面留了一個斷點是斷在main函數的哈。

使用LLDB調試程序

2. 下一步、步入、步出、繼續執行

使用LLDB調試程序

3. 查看變量、跳幀查看變量

使用LLDB調試程序

結束

這只是這篇文章結束了,還有watchpoints這一門沒有寫。不過這篇文章里面的東西知道了以后,調試個程序問題就不大。 想要進階的同學可以去看 官方tutorial

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!