gdb调试汇编的一点问题`
有这么一段汇编代码(movtest.s):.section .data
values:
.int 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60
.section .text
.globl _start
_start:
nop
movl $values, %edi
movl $100, 4(%edi)
movl $1, %edi
movl values(, %edi, 4), %ebx
movl $1, %eax
int $0x80
然后我是这么汇编和链接的:
as -o movtest.o movtest.s -g
ld -o movtest movtest.o
然后进入gdb里面, movl $values, %edi是怎么也执行不了, 下面是错误提示
Warning:
Cannot insert breakpoint -2.
Error accessing memory address 0x8048074: Input/output error. 调用100号,系统调用。
不知道你这个shellcode是干吗用的?
你是要设置断点? objdump -D movtest.o
看看
回复 #2 emmoblin 的帖子
系统调用号100 ?啥意思?我是说在gdb里movl $values, %edi怎么也执行不了, 设置了一个断点break *_start+1 ...
发现values变成了一个,,, 类似于函数的标签` 我试了,能执行,能断住,一点问题没有。
回复 #6 albcamus 的帖子
嗯, 我发现是在64位的系统上总出问题, 32位的就Ok..回复 #7 yylogo 的帖子
在64bit os上,你怎么编译、怎么连接的? 估计是这里的错误。
页:
[1]