(此问题与Filtering out junk from valgrind output)有关。
我正在尝试调试大部分项目中的内存泄漏,这个项目大部分都不在我的手中 - 它是代码库的一个分支,大约有数百万行代码,尽管大多数可能不是与我正在研究的小部分相关。由于手工查看它非常困难,我正在尝试使用valgrind来追踪泄漏。
问题是堆栈跟踪如下所示:
==83597== 920 bytes in 1 blocks are possibly lost in loss record 750 of 864
==83597== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==83597== by 0x548EF93: myproject_malloc (mysourcefile.c:48)
==83597== by 0x4F13FD5: ??? (in /path/to/project/library-version.so)
==83597== by 0xFFEFFFD5F: ???
==83597== by 0x38F: ???
==83597== by 0xFFEFFFE5F: ???
==83597== by 0xF: ???
==83597== by 0x54542FF: ??? (in /path/to/project/library-version.so)
==83597== by 0x4F536CA: ??? (in /path/to/project/library-version.so)
==83597== by 0x64B981F: ???
==83597== by 0xF: ???
==83597== by 0x54542FF: ??? (in /path/to/project/library-version.so)
可能导致0xF
,0x38F
等小地址的原因是什么?我正在使用Debian风格的x86_64 Linux发行版。我找不到x86_64的引用,但到目前为止as I can tell,实际数据不应该在更高的地址开始。
答案 0 :(得分:0)
问题是Makefile正在启用fomit-frame-pointer
。