1

我无法继续看到核心被倾倒。

我打字的时候得到了这个

gdb normal_estimation core


Reading symbols from /home/sai/Documents/pcl_learning/normal_estimation/build/normal_estimation...(no debugging symbols found)...done.

warning: core file may not match specified executable file.
[New LWP 11816]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `./normal_estimation'.
Program terminated with signal 11, Segmentation fault.
#0  0xb53101d6 in free () from /lib/i386-linux-gnu/libc.so.6
(gdb) 

请让我知道我该怎么办?

4

1 回答 1

3

程序以信号 11 终止,分段错误。
#0 0xb53101d6 in free () from /lib/i386-linux-gnu/libc.so.6

您需要学习的第一个命令是backtrace(或其同义词:)where

这将告诉您哪些代码调用了free,哪些代码崩溃了。

但是,该代码可能与实际问题无关:任何崩溃free总是由某种堆损坏引起的(释放未分配的内存,释放相同的内存两次,写入已经释放的内存,或溢出分配的缓冲区)。

在 Linux 上诊断堆损坏最有用的工具是ValgrindAddressSanitizer。这些工具中的任何一个都有可能准确地告诉您您做错了什么。

于 2013-01-08T04:06:20.193 回答