dwarf

    0熱度

    1回答

    我的最終目標是修改LLDB中的Objective-C程序的symfile。我想擴充方法名稱,以便可以使用新的唯一名稱來引用調試符號文件中的現有方法。 例如,如果使用(lldb) b -[Foo bar]這種方法當然休息的命名-[Foo bar]的方法,我可以,不過,我想創建這種方法命名爲-[Foo baz]「別名」,所以當我執行在LLDB以下: method_getImplementation(c

    0熱度

    1回答

    我寫了簡單的x86彙編程序: $ cat asm.s .global foo .section .text foo: nop ret 而且隨着 $ gcc -c -g asm.s -o asm.o 編譯,但是當我做objdump --dwarf asm.o,它不會顯示任何有關功能foo的信息。看起來,gcc不會創建有關foo的詳細信息.debug_info。

    3熱度

    2回答

    我讀過幾個地方,ASLR應該在每次運行程序時隨機地址加載.data部分,這意味着全局變量的地址應該不同。但是,如果我有以下代碼: int global_var = 42; int main() { global_var = 10; return 0; } 和我一起gcc -fpie -o global global.c編譯它,objdump -d -M intel顯

    0熱度

    1回答

    我正在尋找基於GUI的調試工具,它從ELF文件中讀取DWARF信息並將彙編指令映射到源代碼的行號。有沒有這樣的工具存在,請讓我知道?

    0熱度

    1回答

    給定一個目標文件和地址addr2line工具可以將它與源代碼中的文件和行號關聯起來。 我想要相反。給定一個行號和一個目標文件,我想獲得與源代碼中給定行對應的指令地址列表。 我知道我可以使用objdump -DS並尋找一條線路,但這很不方便,並且需要手動工作來過濾地址。你知道有什麼工具可以做我想做的嗎?如果我給它一個行列表? UPD。 我舉了一個我想要的例子。 我有一組文件行: src/a.c:14

    0熱度

    1回答

    如何從DWARF引用我的變量地址? 例如,我們有下一個結構: struct sub_struct { int a, b; sub_struct(int a, int b) : a(a), b(b) {} } struct main_struct { sub_struct & as_ref; int c, d; main_struct(su

    1熱度

    1回答

    我試圖使用libdwarf來計算正在運行的程序中局部變量的位置。我曾經可以通過執行DW_OP_fbreg來完成這項工作,DW_OP_fbreg最終會映射到一個寄存器,該寄存器可能是該函數的基本框架。在較新的矮人標準中,框架基礎是DW_OP_call_frame_cfa。我似乎無法找到任何信息告訴我如何執行DW_OP_call_frame_cfa並返回一個幀基地址。有很多CFA表的參考資料,誰恢復了

    1熱度

    1回答

    如果在編譯C文件時向GCC提供默認選項(-g),那麼如何從Linux上的可執行文件轉儲debug_loc部分?我使用的是linux實用程序readelf。 GCC默認生成DWARF4格式的DWARF信息,所以如果我傳遞-g-dwarf2,我可以看到.debug_loc部分,但如果使用默認選項生成信息時如何檢查該部分,因爲我沒有看到該部分傾倒?

    1熱度

    1回答

    我想在DWARF中編碼變量的實時範圍。我應該怎麼做? 我在DWARF 3 pdf的第178頁規格中看到,DW_AT_high_pc和low_pc不適用於用TAG_variable標記的DIE。根據規格我應該在哪裏編碼?

    1熱度

    1回答

    在過去幾年中,只要GCC相互兼容,就允許重複typedefs。我面臨的問題是DWARF調試擴展:看來GCC(v4.8)將重複的typedefs標記爲未使用,並且不包含在DWARF中。 例子: typedef struct yyx yyx_handle; typedef struct yyx yyx_handle; yyx_handle *get_yyx(void *p) { return