2013-12-19 32 views
2

我在centos5_x64寫一個彙編程序:如何在GDB的ONLY數據段程序中爲開始條目設置斷點?


.data 
.global _start 
_start: 
jmp f0 
start: 
pop %rsi 
xor %rax,%rax 
mov %al,7(%rsi) 
mov %rsi,8(%rsi) 
mov %rax,12(%rsi) 
mov $0xb,%al 
mov %rsi,%rbx 
lea 8(%rsi),%rcx 
xor %rdx,%rdx 
int $0x80 
f0: 
call start 
cmd: .ascii "/bin/shAAAAAAAAAAAAAAAAA" 

可以執行。我想用gdb進行調試,我如何爲start條目設置斷點?

回答

0

如果組裝和調試符號鏈接,使用方法:

(gdb) break start 
+0

謝謝你,就可以了。但是GDB無法在_start上打開它,爲什麼?我可以在第一條指令上打破它嗎? – 5he1lc0de

+1

@ 5he1lc0de:看看[這個相關的問題](http://stackoverflow.com/questions/17639893/breakpoint-not-hit-in-assembly?rq=1)這表明Ubuntu 10.04和之前加上相應的'gdb'在第一條指令處設置了一個斷點。解決方案似乎是在那裏添加一個「nop」。 – wallyk

相關問題