我試圖讓這段代碼的工作顯示的每個程序功能高低PC:https://github.com/eliben/code-for-blog/blob/master/2011/dwarf_get_func_addr.c 它是由禮Bendersky做一個教程提取上http://eli.thegreenplace.net/2011/02/07/how-debuggers-work-part-3-debugging-information 不幸的是,PC的低和高的PC回報始終是相同的解決了幾乎所有的功能:使用DWARF庫
DW_TAG_subprogram: 'aFunctionName'
low pc : 0x00000001
high pc : 0x7f3a00000001
而如果objdump的--dwarf = decodedline ./lulesh_normal >> dump_dwarf.txt 給我:
File name Line number Starting address
lulesh.cc 1297 0x402e00
lulesh.cc 1297 0x402e11
lulesh.cc 1299 0x402ee4
lulesh.cc 1300 0x402ef0
lulesh.cc 1301 0x402ef6
lulesh.cc 1299 0x402f00
[...]
因此,它設法鏈接線路和地址,但不能找到功能的真實地址。 任何想法爲什麼?
感謝你的幫助,