簡體   English   中英

如何通知 lldb 調試器源代碼在哪里?

[英]How do I inform lldb debugger where the source code is?

我有一個使用/usr/lib/libcrypto.0.9.8.dylib的可執行文件。 我(或多或少)在該庫中找到了一些我想更好地理解的斷點。

但是,我不記得這是系統上的庫存 openssl 還是我后來安裝的(不這么認為,很確定自制軟件會把它放在其他地方)。

這適用於 macOS Mojave (10.14)。 如果調試符號已在 libcrypto 中被剝離,我什至不確定我是否知道如何檢查( nm ?)。 但是,我已經下載並提取了源代碼(與版本匹配)。

有什么方法可以配置 lldb 以便它可以向我顯示源代碼而不是匯編語言? 如果調試符號已被刪除(甚至沒有檢查,我假設是這樣)你甚至可以這樣做嗎?

我正在嘗試為此進行自己的研究,但我什至不確定我是否知道要搜索哪些關鍵字。

Darwin 上的工具不會將調試信息存儲在二進制文件中,而是存儲在單獨的獨立包(dSYM)中。 因此,如果您的 libcrypto 沒有 dSYM,那么您就沒有調試信息,並且無法重建代碼->源 map。

一些發行版具有調試包以及包含 dSYM 的發布包。 lldb 使用由 linker 計算的通用 UUID 將 dSYM 匹配到二進制。 您可以使用命令dwarfdump --uuid <PATH TO BINARY>打印 UUID,然后查看從哪里獲得庫是否保留了該 dSYM。

但是,如果您找不到 dSYM,您將無法進行任何源代碼級調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM