使用gdb在地址处设置断点

时间:2018-11-27 21:44:32

标签: debugging assembly x86 gdb

因此,我有一个已编译的程序,其中源仅部分可用,这意味着二进制文件比源更新。另外,二进制文件的优化值为1。然后,我在gdb中启动它,并反汇编诸如disassemble phase_1之类的函数调用时,它会打印出这样的内容

0x0000000000400ec3 <+0>:    sub    $0x8,%rsp
0x0000000000400ec7 <+4>:    mov    $0x402550,%esi
0x0000000000400ecc <+9>:    callq  0x401383 <strings_not_equal>
0x0000000000400ed1 <+14>:   test   %eax,%eax
0x0000000000400ed3 <+16>:   je     0x400eda <phase_1+23>
0x0000000000400ed5 <+18>:   callq  0x4015e7 <explode_bomb>
0x0000000000400eda <+23>:   add    $0x8,%rsp
0x0000000000400ede <+27>:   retq

所以我想知道的是,如何在给定的程序集中设置断点,因为b 0x0000000000400ed3不会中断。我假设0x0000000000400ed3是指令的地址,所以如果不是这种情况,我怎么能找到指令的实际地址?

0 个答案:

没有答案