当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : gdb单步调试汇编程序出现警告(CRC mismatch)
帖子发表于 : 2011-03-14 23:44 

注册: 2011-03-14 23:19
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
前几天刚装了一个64位ubuntu,使用gdb工具,在增加断点之后使用run命令执行nasm写的汇编程序的时候出现了一个警告:
warning: the debug information found in "/lib/ld-2.12.1.so" does not match "/lib/ld-linux.so.2" (CRC mismatch).
程序如下:
section .text ;代码段

global main ;函数入口

main:
;在32位汇编中,需要调用系统函数,ebx、ecx……一次表示第一个参数、第二个参数……
;调用sys_write函数向标准输出打印"hello,world!"如下所示:
mov ebx,1 ;标准输入(stdout)
mov ecx,msg ;msg地址
mov edx,len ;字符串长度
mov eax,4 ;sys_write函数
int 0x80 ;调用

;下面是退出程序部分:
mov ebx,0 ;退出代码
mov eax,1 ;sys_exit函数
int 0x80 ;调用

section .data ;数据段

msg db "hello,world!",0xa ;0xa表示‘\n‘
len equ $-msg ;‘$‘表示当前偏移地址

编译命令如下:
nasm -f elf hello.asm -F stabs -g
gcc -m32 -o hello hello.o -g

生成hello文件之后使用gdb进行调试:
(gdb)file hello
在main:处设置断点(Breakpoint 1 at 0x80483a0: file helloworld.asm, line 5.)
(gdb)run
Starting program: /home/yes/Program/MyNasm/call_ret/hello
warning: the debug information found in "/lib/ld-2.12.1.so" does not match "/lib/ld-linux.so.2" (CRC mismatch).

Breakpoint 1, 0x080483a0 in main ()
(gdb) next
Single stepping until exit from function main,
which has no line number information.
hello,world!

Program exited normally.
(gdb)

为什么不可以使用next命令呢 使用step命令效果与next相同。
但是调试c程序是可以正常进行的。
初来乍到,希望得到大家的帮助!
小弟敬上


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译