【发布时间】:2013-02-15 00:19:48
【问题描述】:
执行 gdb> core-file 时,gdb 给出以下错误,然后在创建核心文件时崩溃:
Reading symbols from ./libtcmalloc_minimal.so.0...
*** glibc detected *** gdb: malloc(): memory corruption (fast): 0x0000000000ec04a0 ***
我没有找到任何关于 gdb 因此错误而崩溃的参考。有没有人遇到过这个?如果是这样,可以做些什么呢。
GDB的版本是:GNU gdb (GDB) SUSE (6.8.50.20090302-1.5.18)
谢谢
【问题讨论】:
-
使用
-g编译。它是否说明了某些行号?是否愿意展示一些展示问题的最小可编译代码? -
我自己并没有编译代码 - 只是试图获取堆栈跟踪以提交分析。澄清一下,这个错误是在运行 gdb 来分析内核时发生的,而不是在应用程序本身运行时发生的。
-
尝试使用程序和核心文件名作为参数调用gdb,即'gdb prog-file core-file'
-
从命令行调用会出现相同的错误(不同的内存位置),然后在内存映射期间,gdb cores
-
原来 malloc 错误是由于 LD_LIBRARY_PATH 中的路径顺序造成的。 tcmalloc 位于 O/S 内存管理器之前的 var 中。更改顺序消除了此错误。现在我有一个不同的错误,但这是另一篇文章的主题。
标签: gdb