如果在編譯C文件時向GCC提供默認選項(-g),那麼如何從Linux上的可執行文件轉儲debug_loc部分?我使用的是linux實用程序readelf
。轉儲可執行文件中的debug_loc部分
GCC默認生成DWARF4格式的DWARF信息,所以如果我傳遞-g-dwarf2,我可以看到.debug_loc部分,但如果使用默認選項生成信息時如何檢查該部分,因爲我沒有看到該部分傾倒?
如果在編譯C文件時向GCC提供默認選項(-g),那麼如何從Linux上的可執行文件轉儲debug_loc部分?我使用的是linux實用程序readelf
。轉儲可執行文件中的debug_loc部分
GCC默認生成DWARF4格式的DWARF信息,所以如果我傳遞-g-dwarf2,我可以看到.debug_loc部分,但如果使用默認選項生成信息時如何檢查該部分,因爲我沒有看到該部分傾倒?
您是否使用binutils的最新版本?在Ubuntu 14.04上,我可以使用「gcc -g test.c -o test」構建可執行文件。
隨着「readelf --debug突降=信息測試」我可以證實它的使用矮4
之後,你有(至少)兩種方式來轉儲.debug_line節的內容。
readelf --debug轉儲= decodedline測試
這將轉儲解碼行號信息。你直接得到線==地址映射。
還有:
readelf --debug突降= rawline測試
這讓你生debug_line內容。
你使用最新版本的binutils嗎?在Ubuntu 14.04上,我可以使用「gcc -g test.c -o test」構建可執行文件。然後執行「readelf --debug-dump = info test」並查看它的DWARF 4,然後執行readelf --debug-dump = decodedline測試並獲取.debug_line部分的內容。 – dbrank0 2015-02-11 07:09:34
ohh我不知道這個選項。請解釋更多關於這個,並把它放在答案我會接受它非常感謝! – 2015-02-11 07:12:46