问题标签 [memcheck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2470 浏览

command-line - 如何使用 ctest 将参数传递给 memcheck?

我想从命令行使用 ctest 通过 memcheck 运行我的测试并为 memcheck 命令传递参数。

我可以运行ctest -R my_test我的测试,甚至可以ctest -R my_test -T memcheck运行通过 memcheck 运行它。

但是我似乎找不到将参数传递给该 memcheck 命令的方法,例如--leak-check=fullor --suppressions=/path/to/file

在阅读了 ctest 的文档后,我尝试使用带有and的-D选项。我也尝试将这些设置为环境变量。我的尝试都没有产生任何不同的测试命令。总是如此:CTEST_MEMCHECK_COMMAND_OPTIONSMEMCHECK_COMMAND_OPTIONS

如何从 ctest 命令行控制 memcheck 命令?

0 投票
1 回答
300 浏览

memory-leaks - 找出 dlopen 和 dlclose 之间共享库中的内存泄漏

我们编写了一个共享库(比如 slib.so),它在一个永无止境的可执行文件中被 dlopen'ed、used 和 dlclose'd。我想在不附加可执行文件的情况下检查库 slib.so 中的内存泄漏。

Linux 中是否有任何工具可以找出共享库中的内存泄漏?所以我需要一个工具来监控 dlopen 和 dlclose 之间的堆,并在 dlclose 之后报告问题。

0 投票
0 回答
91 浏览

c - 无法为通过看门狗运行并使用共享对象的进程获取内存泄漏报告

我正在使用使用多个共享对象的 valgrind 运行一个进程。valgrind 命令是:

我的LD_LIBRARY_PATH也指向正确的库路径。

但是我valgrind生成的报告没有显示LEAK SUMMARYor的部分HEAP SUMMARY

关于这里做错了什么的任何建议都会有很大帮助!

0 投票
1 回答
165 浏览

valgrind - Valgrind:如果程序崩溃,则抑制内存泄漏报告

假设我们已经配置了最大诊断的自动 Valgrind 测试设置(--leak-check=yes --track-origins=yes等)。但是,在某些测试中,由于某些不确定的错误,valgrind 进程可能会因 SIGSEGV 而崩溃。在这种情况下,导致 SIGSEGV 的即时诊断很有用,但 Valgrind 并没有就此止步,而是将每个实时内存分配作为泄漏转储,数以万计的泄漏 - 这在随机 SIGSEGV 的情况下是无用的。

有没有办法将 Valgrind 配置为

  • 在程序执行期间打印任何错误并且不要中止;
  • 定期退出时,转储内存泄漏;
  • 在 SIGSEGV/SIGABRT/SIGILL/SIG... 退出时,不要转储内存泄漏?

编辑:这已于 2011 年在 Valgrind 错误跟踪器中记录:https ://bugs.kde.org/show_bug.cgi?id=265371

0 投票
1 回答
612 浏览

cmake - 如何在 valgrind 中抑制 GOT 的“无效读取”警告?

我正在运行 valgrind memcheck 作为单元测试的一部分。Valgrind 为特定的测试视图发出“大小为 8 的无效读取”并修改进程的 GOT(全局偏移表)。我想最好仅针对 GOT 禁止此警告(即应发出其他“无效读取”警告)。有没有办法在不定义 valgrind 抑制文件的情况下做到这一点?作为论点的一部分,我可以通过 CMake/CTest 传递给 valgrind?

0 投票
0 回答
501 浏览

android - 在 Android 中执行 Valgrind 时出现警告“警告:链接器:“vgpreload_core-arm64-linux.so”具有不受支持的标志 DT_FLAGS_1=0x421”

我曾尝试使用 adb shell 在 Android Orea 8.1 中运行 Valgrind MemCheck。但最初它给出了很多错误,直到现在我已经破解了它。现在收到此错误。

Valgrind 已从 AOSP 中弃用。但我需要在我的 Android 服务和一些本机服务上使用 memcheck。

到目前为止,我为使其正常工作所做的 hack 如下: 1. 将 Android.mk 文件中的库位置从 /system/lib64/valgrind 修改为 /system/lib64。2.修改memcheck-arm64-linux的权限为777。

现在,我在 linker64 中有这个警告和一些错误。

0 投票
1 回答
971 浏览

c++ - cuda-memcheck 未发现问题时如何调试错误代码 77: cudaErrorIllegalAddress?

我有一个复杂的 Cuda C++ 应用程序,它运行良好,直到我构建 cuda 代码-g -G。构建调试时,它崩溃了cudaErrorIllegalAddress,所以我跑了cuda-memcheck,但没有发现任何问题。我也跑了valgrind,没有发现任何问题。

cuda-memcheck什么都没有找到时,有什么策略可以找出 Cuda 代码中发生非法内存读取或写入的位置?有没有办法cuda-gdb获得无效内存访问的代码行?

0 投票
1 回答
834 浏览

valgrind - valgrind memcheck xtree 文件的工具

我正在尝试找到正确的工具来显示由以下文件生成的文件中包含的结果:

这会产生一个名为的文件,该文件xtmemory.kcg.[pid]在很大程度上是不可读的……至少对我来说!

既然我们有 kcachegrind 用于可视化 callgrind 树和图形,那么真的没有用于 xtmemory 文件的工具吗?

0 投票
1 回答
1476 浏览

compilation - 如何编译 ADB(Android 调试桥)的源代码?

我正在尝试在 ADB 软件上运行内存错误检测器(如 Valgrind 的 Memcheck 或 Drmemory)。但是,我无法弄清楚如何构建/编译源代码。我正在使用linux(ubuntu)。

https://github.com/aosp-mirror/platform_system_core/tree/master/adb

我需要一个makefile吗?或者我对如何去做这件事的理解有问题?也许有一种方法可以让我使用 Memcheck/Dr. 实际程序在 Android Studio 中运行时的内存?我不相信源代码中有任何说明或生成文件。

我尝试使用 g++ 编译客户端文件夹中的 main.cpp 文件,但它说它无权访问 sysdep.h 文件。

编译使用: $ cd client $ g++ -std=c++11 main.cpp -o main

错误消息:致命错误:sysdep.h:没有这样的文件或目录

0 投票
2 回答
152 浏览

c - 使 valgrind 在未初始化的值上快速失败

Valgrind memcheck 使用一堆启发式方法来避免误报“无害”使用未初始化的值,因为这种用法在正确和不正确但正常运行的代码中都很常见。

特别是,除非您以一种严肃的、也许是“不可逆”的方式实际使用这样的值,例如,根据它的值进行跳跃,否则它不会出错。

这意味着有时错误发生在离问题根源很远的地方,甚至无法确定涉及哪个值。是否有某种方法可以在运行时“检查”一个值,例如如果未初始化use(x),Valgrind 会在该位置发出错误?x