Chr*_*ver 11 c linux gcc valgrind
当我使用valgrind帮助调试我正在研究的应用程序时,我注意到大量的噪音似乎在抱怨标准库.作为测试,我做到了这一点;
echo 'int main() {return 0;}' | gcc -x c -o test -
Run Code Online (Sandbox Code Playgroud)
然后我做了这个;
valgrind ./test
==1096== Use of uninitialised value of size 8
==1096== at 0x400A202: _dl_new_object (in /lib64/ld-2.10.1.so)
==1096== by 0x400607F: _dl_map_object_from_fd (in /lib64/ld-2.10.1.so)
==1096== by 0x4007A2C: _dl_map_object (in /lib64/ld-2.10.1.so)
==1096== by 0x400199A: map_doit (in /lib64/ld-2.10.1.so)
==1096== by 0x400D495: _dl_catch_error (in /lib64/ld-2.10.1.so)
==1096== by 0x400189E: do_preload (in /lib64/ld-2.10.1.so)
==1096== by 0x4003CCD: dl_main (in /lib64/ld-2.10.1.so)
==1096== by 0x401404B: _dl_sysdep_start (in /lib64/ld-2.10.1.so)
==1096== by 0x4001471: _dl_start (in /lib64/ld-2.10.1.so)
==1096== by 0x4000BA7: (within /lib64/ld-2.10.1.so)
* large block of similar snipped *
==1096== Use of uninitialised value of size 8
==1096== at 0x4F35FDD: (within /lib64/libc-2.10.1.so)
==1096== by 0x4F35B11: (within /lib64/libc-2.10.1.so)
==1096== by 0x4A1E61C: _vgnU_freeres (vg_preloaded.c:60)
==1096== by 0x4E5F2E4: __run_exit_handlers (in /lib64/libc-2.10.1.so)
==1096== by 0x4E5F354: exit (in /lib64/libc-2.10.1.so)
==1096== by 0x4E48A2C: (below main) (in /lib64/libc-2.10.1.so)
==1096==
==1096== ERROR SUMMARY: 3819 errors from 298 contexts (suppressed: 876 from 4)
==1096== malloc/free: in use at exit: 0 bytes in 0 blocks.
==1096== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==1096== For counts of detected errors, rerun with: -v
==1096== Use --track-origins=yes to see where uninitialised values come from
==1096== All heap blocks were freed -- no leaks are possible.
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看完整结果:http: //pastebin.com/gcTN8xGp
我有两个问题; 首先是有办法抑制所有的噪音吗?
--show-below-main默认设置为no,但似乎没有--show-after-main等价物.
Mic*_*kis 12
您可以通过追加来抑制输出
{
ld error suppression
Memcheck:Cond
fun:dl_main
fun:_dl_sysdep_start
fun:_dl_start
obj:/lib64/ld-2.10.1.so
}
Run Code Online (Sandbox Code Playgroud)
到/usr/lib/valgrind/default.supp(或定义自己的抑制文件).
它似乎是一个已知的链接器/加载器错误,至少对Debian和Arch Linux开发人员而言; 我不确定其余的,以及他们计划的行动方案.
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |