2011-03-28 70 views
46
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 

我想:如何在gdb的给定地址处拆分汇编指令?

breaki 0x0000000000400448 

,但似乎有没有这样的命令。

gdb是否有这样的功能?

+2

为什么'breaki'?是一个错字? – Blauhirn 2017-06-13 17:47:09

+1

@Blauhirn也许就像'stepi'和'nexti'这样的用来在指令级单步执行的类比。 – 2017-12-09 21:39:07

回答

73

尝试break *0x0000000000400448

+1

为什么'break 0x0000000000400448'不起作用? – 2011-03-28 13:31:23

+9

可能因为*需要指定地址。 请参阅http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html#Specify-Location – 2011-03-28 13:38:02

34

另一种方式:

break *main+4

这将在0x000000000040044c
添加一个断点,我认为这是比写入整个地址更容易!