我开始从这里学习C。我在第 5 章,练习 4 中学习使用 valgrind。此页面上的源代码窗口 17 中解释了该问题。
在 Valgrind'ing 文件 (ex4.c) 后,我的输出缺少此页面上显示的 Valgrind 输出,具体方式如下:
???
代替_itoa_word (_itoa.c:195)
未识别 C 库文件中行号的位置。相反,给出了共享库文件 (.so) 的路径。
下面显示了一个比较两个输出的示例。
我期待什么
==3082== 使用大小为 8 的未初始化值
==3082== 在 0x4E730EB:_itoa_word (_itoa.c:195)
==3082== 由 0x4E743D8: vfprintf (vfprintf.c:1613)
==3082== 由 0x4E7E6F9: printf (printf.c:35)
==3082== 由 0x40052B: 主要 (ex4.c:11)
我得到了什么
==14647== 在 0x407D256: ??? (在 /lib/tls/i686/cmov/libc-2.11.1.so 中)
==14647== 0x4080B89:vfprintf(在 /lib/tls/i686/cmov/libc-2.11.1.so 中)
==14647== by 0x40882BF: printf (in /lib/tls/i686/cmov/libc-2.11.1.so)
==14647== 由 0x8048401: 主要 (ex4.c:9)
请告诉我如何纠正我的 valgrind 输出。我正在使用 Ubuntu-10.10,32 位版本。我使用源代码安装了 Valgrind-3.8.1。我的 gcc 版本是 4.3.3 和 glibc 版本 2.11.1