[英]lldb breakpoint set command fails
我正在嘗試使用lldb
的程序化斷點設置。 該命令是:
(lldb) breakpoint set -r . -s <product-name>
Breakpoint 25: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
如您所見,它向我拋出警告,說它無法解析斷點的位置。 我正在使用調試方案而不進行優化來運行我的項目。
是什么導致此警告?
如果<product-name>
是共享庫,則可能尚未加載。 采用:
(lldb) image list <product-name>
核實。 如果是這種情況,請放心,在加載庫時,lldb將解析斷點。
您可能還具有與lldb不同的<product-name>
拼寫,例如MyApp.app的模塊名稱實際上是“ MyApp”。 嘗試在您知道在<product-name>
的名稱上設置斷點,然后執行break list
,輸出將具有:
1.1 where = ModuleName`symbol_name...
您要傳遞給-s的是ModuleName。
請注意,如果您知道的符號名稱上的斷點無法解析到任何位置,則可能在調試之前要剝離二進制文件。 您可以通過找到二進制文件( image list
也會告訴您)來驗證這一點,然后在Terminal中運行:
$ nm -ap <PathToBinary>
如果您在此處看不到任何輸出,則說明二進制文件已被剝離。 您需要弄清楚誰在這樣做,並讓他們停止...
嗯,看起來像您在尋找功能
。
我的猜測是找不到。
在古老的Macsbug時代,圓點代表了當前的PC,但在lldb中不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.