是否可以在代码的一部分上运行 valgrind
Is it possible to run valgrind on a portion of the code?
我有一个内存泄漏,发生在相当大的系统的已知部分中。我想全速运行直到该段代码,在该部分上运行 valgrind memcheck,并在该部分结束时收集 valgrind memcheck 报告,而无需进一步完成运行。这可能吗?
不使用 memcheck,不。根据 valgrind FAQ,callgrind 是目前唯一支持这一点的 valgrind 组件:
5.4. 是否可以将Valgrind附加到已经在运行的程序?
不。Valgrind 为运行程序提供的环境与普通程序的环境明显不同,例如由于内存布局不同。因此,瓦尔格林德必须从一开始就拥有完全的控制权。
可以通过在没有任何检测的情况下运行程序来实现这样的事情(这涉及大约 5 倍的减速,比大多数工具的减速慢),然后在到达兴趣点后添加检测。但是,该工具必须对此提供支持,而Callgrind是目前唯一具有此类支持的工具。有关详细信息,请参阅
callgrind_control
程序的说明。
相关文章:
- 运行同一解决方案的另一个项目的项目
- 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程序
- 删除指向指针的指针是运行时错误吗
- 运行.exe的 main(),作为.dll的一部分
- 如何"delete"数组的一部分并保留其余部分而不运行它?
- 是否可以在代码的一部分上运行 valgrind
- 是否有一个内置函数可以使线程的一部分不并发运行
- 程序的一部分在首次运行后未执行
- 我如何运行我的一部分代码,直到我打破
- 运行时解释器真的是 C 程序执行的一部分吗?
- 如何强制程序的一部分只运行一次