gdb调试汇编的一点问题`

发布于 2022-09-18 02:16:40 字数 787 浏览 6 评论 0

有这么一段汇编代码(movtest.s):

  1. .section .data
  2. values:
  3. .int 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60
  4. .section .text
  5. .globl _start
  6. _start:
  7. nop
  8. movl $values, %edi
  9. movl $100, 4(%edi)
  10. movl $1, %edi
  11. movl values(, %edi, 4), %ebx
  12. movl $1, %eax
  13. int $0x80

复制代码
然后我是这么汇编和链接的:

as -o movtest.o movtest.s -g
ld -o movtest movtest.o

然后进入gdb里面, movl $values, %edi是怎么也执行不了, 下面是错误提示

  1. Warning:
  2. Cannot insert breakpoint -2.
  3. Error accessing memory address 0x8048074: Input/output error.

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

单身情人 2022-09-25 02:16:40

调用100号,系统调用。
不知道你这个shellcode是干吗用的?

你是要设置断点?

樱花细雨 2022-09-25 02:16:40

objdump -D movtest.o
看看

短叹 2022-09-25 02:16:40

系统调用号100 ?啥意思?
我是说在gdb里movl $values, %edi怎么也执行不了, 设置了一个断点

  1. break *_start+1

复制代码

童话 2022-09-25 02:16:40

...
发现values变成了一个,,, 类似于函数的标签`

念三年u 2022-09-25 02:16:40

我试了,能执行,能断住,一点问题没有。

还给你自由 2022-09-25 02:16:40

嗯, 我发现是在64位的系统上总出问题, 32位的就Ok..

鹿港巷口少年归 2022-09-25 02:16:40

在64bit os上,你怎么编译、怎么连接的? 估计是这里的错误。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文