addr2line

    10熱度

    2回答

    我想知道是否有一個glibc函數,我可以使用gcc/g ++將檢索當前的可執行文件。 這樣做的目的是提供-e參數addr2line如圖this answer

    1熱度

    3回答

    我使用addr2line來分析引發異常後的堆棧跟蹤(使用backtrace和backtrace_symbols)。目前,這需要大約2秒來分析磁盤上的120Mb二進制文件(調試版本)。 是否有一個庫(LGPL),它通過分析內存中的代碼段來完成相同的工作?當然,這限制了我只分析自己的應用程序 - 但在我的使用情況下,這已經足夠了。

    16熱度

    1回答

    當在某些程序運行addr2line,我得到在該行的最後一個「鑑別N」評論: main at /tmp/nsievebits.c:56 (discriminator 3) 手冊頁沒有提到它,一個快速谷歌搜索似乎表明主要是源代碼文件,沒有明確的解釋。它是否有一些故意沒有記錄的功能?更重要的是,我應該擔心它嗎?

    1熱度

    1回答

    我從執行命令dumpheap -n <PID> <file>獲得回溯。我必須將這些地址轉換爲函數名稱和行號才能使這些回溯有意義。我使用addr2line將這些地址轉換爲函數名稱。這是我使用的命令addr2line -C -f -e <libname>.so <address>。有些地方addr2line給了我$ t代替函數名稱,但給出了正確的文件名:linenumber。我應該如何解決這個'$ t

    0熱度

    1回答

    我正在用C編寫一個記錄庫庫,並且正在嘗試使用addr2line來獲得更好的回溯輸出。爲了做到這一點,我需要能夠獲得當前可執行文件的路徑。目前我只關心linux,但也會爲Mac OS支持拍攝。 對Linux的支持,我試圖用readlink()和/proc/self/exe解決目前可執行文件的路徑: static char** getPrettyBacktrace(void* addresses[],

    13熱度

    2回答

    我需要從C++程序中獲取addr2line(從追溯函數調用的文件和行)提供的信息。是否有類似於addr2line的庫調用? 編輯:我正在Linux環境中工作。 我知道我可以直接調用addr2line,我知道我可以在我的程序中使用addr2line的source code(這也是GPL許可的)。但我想調用一個庫函數,如果它存在的話,更清潔。 編輯:我將使用binutils的bfd,就像addr2li