我有许多关于gdb和objdump的问题。使用gdb和objdump进行调试
地址在objdump的
如果我做的:objdump的-d二进制文件名,然后我得到了包括这部分输出:
Disassembly of section .text:
080484a0 <_start>:
80484a0: 31 ed xor %ebp,%ebp
80484a2: 5e pop %esi
80484a3: 89 e1 mov %esp,%ecx
我在承担这些数字第一列是地址?但我不明白如何知道这些地址,因为当一个进程被加载时,它被放置在内存中的随机位置,这意味着代码每次都有不同的地址?还是这些地址相对于进程的地址空间?
什么是在< _start>下列出的值?
GDB通过代码
踩着我,而我没有源代码的二进制文件。我想通过该程序,但没有符号信息。我无法在函数名称或亚麻布上设置断点。我试图在地址上设置一个断点,这个工作,但我不知道如何一步一步地通过程序。当我这样做: (gdb)s 或 (gdb)n 它说它没有线路信息,只是运行整个功能。 有没有一种方法可以逐步完成它,或者单步执行装配说明?