2011-03-28 62 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
添加一個斷點,我認爲這是比寫入整個地址更容易!