gpt4 book ai didi

c++ - Linux - 运行 valgrind 时不显示源文件/行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:29 25 4
gpt4 key购买 nike

我目前正在尝试使用 valgrind 解决一些内存错误,但我在输出信息方面遇到了一些问题,源文件/行号没有出现。所以我有这种输出:

==11656== by 0xA5A095: Class::method(T1, T2) (in/usr/local/bin/MyBinary)

我在我的 Ubuntu 上使用调试信息(-g 标志)和 GCC 4.8.2(也尝试使用 clang 3.4)编译我的程序。我正在使用 cmake 构建系统,因为我想制作几个库,然后制作一些二进制文件。我用 make VERBOSE=1 检查了 -g 标志是否存在,它是。

我要调试的二进制文件与几个库链接,其中一个重要且需要调试信息的库是 libA,它还与 libB 和 libC 链接。 libA、libB 和 libC 是我创建的库。它们也都使用调试信息进行编译,并且每次都静态链接。

所以依赖方案是:MyBinary <- libA <- libB, libC。

奇怪的是 valgrind 给了我函数名称和命名空间,所以我假设我的二进制文件和库没有被删除。此外,我检查了从二进制文件中的符号检索源文件和行号(给定 nmaddr2line),信息在这里。

用于编译的标志是:-g -std=c++11,对于 valgrind:--leak-check=full --track-origins=yes

我是否遗漏了编译、链接或 valgrind 的一些标志/选项?令我惊讶的是问题来自 valgrind ...

感谢您花时间阅读我。

最佳答案

我发现了为什么它不起作用。我没有检查...我的磁盘上存在另一个同名的二进制文件...所以,这个问题不再相关。

关于c++ - Linux - 运行 valgrind 时不显示源文件/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com