gdb单步调试汇编程序出现警告(CRC mismatch)

软件和网站开发以及相关技术探讨
回复
yeslife
帖子: 1
注册时间: 2011-03-14 23:19
送出感谢: 0
接收感谢: 0

gdb单步调试汇编程序出现警告(CRC mismatch)

#1

帖子 yeslife » 2011-03-14 23:44

前几天刚装了一个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程序是可以正常进行的。
初来乍到,希望得到大家的帮助!
小弟敬上
回复

回到 “软件/网站开发”