objdump可以在文本部分使用bss变量名吗?

时间:2015-10-29 23:33:09

标签: disassembly objdump

我正在使用objdump来生成C代码的反汇编,并想知道是否有办法从堆中获取变量的名称(.bss部分)以用于.text部分反汇编,而不是十六进制地址

例如,

int main(void)
{
    while (1)
    {
        request_ID = Receive(0, buffer, MSG_SIZE, 0);
    }
    return 0;
}

这是编译的,然后使用objdump -D file.o我得到了反汇编,包括.bss部分:

 400:   55                      push   ebp
 401:   89 e5                   mov    ebp,esp
 403:   83 ec 18                sub    esp,0x18
 ...
 43d:   a1 cc 24 00 00          mov    eax,ds:0x24cc

...
Disassembly of section .bss:

000024cc <request_pID>:

我想要的是将变量的十六进制地址替换为它们的名称:

     43d:   a1 cc 24 00 00          mov    eax, <request_ID>

我可以编写一个sed脚本或类似的东西来实现这一点,但是想知道是否有更简单的选项。

更好的方法是打印地址和变量名称以帮助调试。

     43d:   a1 cc 24 00 00          mov    eax, ds:0x24cc <request_ID>

该代码用于在Bochs中测试的操作系统开发,因此如果有其他方法将符号加载到Bochs&#39;调试器,这将是一个很好的解决方法,虽然我仍然希望创建objdump输出。

谢谢,保罗

0 个答案:

没有答案