Linux - 运行 valgrind 时不会出现源文件/行
Linux - source files/lines doesn't appear when running valgrind
我目前正在尝试使用 valgrind 解决一些内存错误,但我在输出信息方面遇到了一些问题,源文件/行号没有出现。所以我有这种输出:
==11656== by 0xA5A095: Class::method(T1, T2) (in /usr/local/bin/MyBinary)
我正在我的 Ubuntu 上使用调试信息(-g
标志)和 GCC 4.8.2(也尝试使用 clang 3.4)编译我的程序。我正在使用 cmake 构建系统,因为我想制作几个库,然后制作一些二进制文件。我检查了在编译过程中是否存在-g
标志make VERBOSE=1
并且确实存在。
我要调试的二进制文件与几个库链接,一个重要且需要调试信息的库是libA,它也与libB和libC链接。 libA,libB和libC是我做的库。它们还使用调试信息进行编译,并且每次都静态链接。
所以依赖方案是:MyBinary <- libA <- libB,libC。
奇怪的是,valgrind 给了我函数名称和命名空间,所以我假设我的二进制文件和库没有被剥离。此外,我检查了从二进制(给定nm
和addr2line
)中的符号中检索源文件和行号,信息在这里。
用于编译的标志是: -g -std=c++11
,而对于瓦尔格林德:--leak-check=full --track-origins=yes
.
我是否缺少一些用于编译、链接或 valgrind 的标志/选项?我会感到惊讶,问题来自瓦尔格林德......
感谢您花时间阅读我。
我发现了为什么它不起作用。我没有检查...我的磁盘上存在另一个同名的二进制文件......因此,这个问题不再相关。
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 当同一项目中涉及多个源文件和头文件时,如何在 Visual Studio 中编译和运行项目
- 在 Linux 上的源文件上运行'gcc' C++会给出"cc1plus: out of memory allocating ..."错误消息
- 在运行时定义的C++全局外部常量可用于多个源文件
- 如何编译c++源文件,在运行时生成,使用waf
- Linux - 运行 valgrind 时不会出现源文件/行