libc 中的错误?如何读取转储文件
Bug in libc? How to read dump file?
我会尽量用最好的方式提出我的问题:
我想使用相机制造商的示例代码(只有一个名为"main.cpp"的文件)在 Ubuntu 11.10 下从我的相机读取图像。如果我使用示例项目,一切正常,并且我会收到图像数据。但是,如果我将此"main.cpp"添加到我的真实项目中并进行编译,则应用程序会崩溃。
很难确定导致此错误的部分。但是,如果我从我身上删除一些代码(已编译但肯定没有使用!),程序将按预期工作。我想在我的代码编译时,我链接的另一个库会导致错误(例如 Opencv 或 boost?我试图找出导致这种行为的部分,但如果你们能同时告诉我,如果有可能从这个崩溃消息中提取有用的信息,我会很高兴这个 Gist 上可以找到。
我的 libc 损坏了吗?
libc 中的错误?
不。
*** glibc detected *** ./myProject: double free or corruption (!prev): 0x09c12660 ***
此错误意味着应用程序以某种方式损坏了堆。它可能free
同一指针两次,或者可能已写入已分配缓冲区的末尾。
查找此类堆损坏错误的工具是Valgrind。
只有当你链接额外的代码时才会发生崩溃,这可能只是一个意外——即使没有额外的代码,这个错误也可能存在于应用程序中,但还没有表现在崩溃中。
额外的代码也有可能引入错误,尽管可能性较小。
在任何一种情况下,一旦您在 Valgrind 下运行应用程序,错误应该变得很明显。
相关文章:
- 分段故障(堆芯转储)矢量
- Cppcheck生成xml转储文件
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 浮点异常(核心转储)#694457
- 分段错误(核心转储)但无法弄清楚
- 链接到libkcapi时没有核心转储
- 检测到堆栈粉碎:已终止 中止(核心已转储)
- 正在处理故障(堆芯转储)
- 分段错误(核心转储) - 使用 SavedModel 的 Tensorflow C++ API 进行推断
- 从文件中读取的数据,但发生核心转储错误
- 如何读取小型转储
- libc 中的错误?如何读取转储文件
- 在VS2010 64/32位冲突中读取转储文件
- 从文件读取后出现分段故障(核心转储)
- 读取字符串时转储核心
- 将读取线分段故障(堆芯转储)到阵列中
- 隔离区故障,需要帮助读取堆芯转储