双重释放或损坏(出),核心转储。在哪里可以找到核心转储?

问题描述 投票:0回答:1

我一直在 Fedora 中开发 BaseX XML 数据库的 C++ 客户端。客户端的原始版本是在 Eclipse 中开发的,由一个测试程序和一些允许与数据库通信的源文件组成。该代码的 Eclipse 版本在执行时不会给出错误消息。 对于程序的下一个版本,我使用了用于通信的文件来开发共享库。我所要做的就是添加一个公共标头。

现在可以在本地安装共享库。 命令

LD_LIBRARY_PATH=~/lib/lib64 ./libTest
给出与原始版本相同的结果,但最终为

double free or corruption (out)
Aborted (core dumped)

Valgrind 不能用于检查库。而且我也没有收到有关核心转储位置的消息。

如何解决库中的内存问题?

valgrind
1个回答
0
投票

你尝试过吗

LD_LIBRARY_PATH=~/lib/lib64 valgrind ./libTest

最好使用 ~/lib/lib64 中使用 debuginfo 构建的库。

Memcheck 应该检测并报告双重释放。

© www.soinside.com 2019 - 2024. All rights reserved.