我有一個使用GNU make,clang等完整調試信息構建的進程(不是應用程序)。我想用lldb和GUI調試器來附加它,它顯示我的源代碼,可變綁定等。如何用XCode 4.6.2和lldb調試非xcode進程?
有沒有辦法在OS X 10.8上使用XCode 4.6.2或任何其他工具(例如一個適用於Emacs的工作lldb模式)?
我試着附加XCode 4.6.2,但它只顯示反彙編,我發現沒有辦法告訴它在哪裏尋找源代碼。有人建議編輯方案並設置自定義工作目錄,但文件夾選擇圖標被禁用。另一個建議添加文件...但這並沒有幫助。
使用普通lldb從Terminal.app進行附加顯示行號和源文件名(但不包含路徑名)。我找不到告訴lldb在哪裏查找源代碼的方法。
在gbd中,在命令行上,我可以使用dir命令來告訴它源位於哪裏,並使list命令起作用。如果我告訴XCode使用gbd(可以從「附加到進程/按進程標識符(PID)或名稱」菜單中選擇),但是XDB會從XCode中刪除gdb支持,所以XCode會顯示源代碼,因此此方法很快就會停止加工。
謝謝,我會試試這個。 (標題有錯誤的XCode版本) –
target.source-map沒有工作。其中一個問題是,我不知道lldb正在嘗試(和失敗)尋找來源。另外,在我的情況下,路徑映射似乎固有地無用,在這種情況下,所有源文件與二進制文件構建時的位置完全相同。 根據http://lldb.llvm.org/lldb-gdb.html仍然沒有等同於gdb目錄命令。 有沒有辦法告訴XCode在哪裏看? –
當您在其中一個應有源代碼的函數中停止時,請嘗試'image lookup -v -a ADDRESS'。這會告訴你lldb知道該地址的所有信息,包括源文件的完整路徑。可能是lldb找不到它,但Xcode不顯示源代碼 - 你可以嘗試命令行lldb('xcrun lldb')來確認是否是這種情況。注意:在更新的lldb中,更簡單的方法是使用'source list -a ADDRESS',但我不記得它是否適用於Xcode 4.6中的lldb。 –