[英]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.