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
條目設置斷點?
謝謝你,就可以了。但是GDB無法在_start上打開它,爲什麼?我可以在第一條指令上打破它嗎? – 5he1lc0de
@ 5he1lc0de:看看[這個相關的問題](http://stackoverflow.com/questions/17639893/breakpoint-not-hit-in-assembly?rq=1)這表明Ubuntu 10.04和之前加上相應的'gdb'在第一條指令處設置了一個斷點。解決方案似乎是在那裏添加一個「nop」。 – wallyk