如何打破gdb中给定地址的汇编指令?

com*_*fan 77 assembly gdb

0x0000000000400448 <main+0>:    push   %rbp
0x0000000000400449 <main+1>:    mov    %rsp,%rbp
0x000000000040044c <main+4>:    mov    $0x6,%eax
0x0000000000400451 <main+9>:    leaveq 
0x0000000000400452 <main+10>:   retq   
Run Code Online (Sandbox Code Playgroud)

我试过了:

breaki 0x0000000000400448
Run Code Online (Sandbox Code Playgroud)

但似乎没有这样的命令.

gdb有这样的功能吗?

Lau*_*t G 120

尝试 break *0x0000000000400448

  • 可能因为*需要指定地址.请参阅http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html#Specify-Location (15认同)
  • 为什么`break 0x0000000000400448`不起作用? (4认同)
  • 当然你可以删除前导零并缩写`break`,给`b*0x400448`. (3认同)
  • @compile-fan break *address 在地址address处设置断点。您可以使用它在程序中没有调试信息或源文件的部分设置断点。https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_28.html 我正在调试汇编代码并到达这里以解决您提出的相同问题。 (2认同)

jyz*_*jyz 56

其他方式:

break *main+4

这将增加一个断点,0x000000000040044c
我认为这比编写整个地址更容易!