我开始从这里学习C。我正在学习在第五章,练习-4中使用瓦兰。这页面上的源代码窗口-17解释了这个问题.
在对文件(ex4.c)进行Val差事时,我的输出从这页面上显示的瓦莱尔输出中缺少以下方式;
???而不是_itoa_word (_itoa.c:195)下面是一个比较这两种输出的例子。
我所期望的
==3082==使用大小为8的未初始化值
==3082== at 0x4E730EB:_itoa_word (_itoa.c:195)
==3082== by 0x4E743D8: vfprintf (vfprintf.c:1613)
==3082== by 0x4E7E6F9: printf (printf.c:35)
==3082== by 0x40052B: main (ex4.c:11)
我得到了什么
==14647==在0x407D256:?(见/lib/tls/i 686/cmov/libc-2.11.1.so)
==14647== by 0x4080B89: vfprintf (in /lib/tls/i 686/cmov/libc-2.11.1.so)
==14647== by 0x40882BF: printf (in /lib/tls/i 686/cmov/libc-2.11.1.so)
==14647== by 0x8048401: main (ex4.c:9)
请告诉我如何纠正我的英勇输出。我正在使用Ubuntu-10.10,32位版本。我使用源代码安装了Valcha-3.8.1。我的gcc版本是4.3.3,glibc版本是2.11.1
发布于 2012-11-01 20:25:43
有些Linux发行版附带的库已经去掉了它们的符号。结果库要小得多,但缺少在gdb或val差伦中调试它们所需的函数名。
您通常可以找到一个包,该包中的每个库都具有调试符号。例如,在Ubuntu上,它是带有"-dbg“后缀的库的包名。对于C库libc6,它是libc6-dbg。安装时:
sudo aptitude install libc6-dbghttps://stackoverflow.com/questions/13183491
复制相似问题