问题标签 [valgrind]

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 投票
2 回答
7160 浏览

c - 用 Valgrind 运行单元测试是不是有点矫枉过正?

就在几天前,我开始研究一个名为 check 的单元测试框架,并打算在 Linux 下在 c 代码上运行测试。

现在检查一下,一些设计良好的代码和一些测试代码可以帮助我验证基本功能是否正确,我的意思是很容易查看变量并返回响应,然后确定函数是否正确。

但是,假设我想测试一个动态内存结构,其中包含大量的 malloc 和 free,结果我可以将数据放入并再次取出正确的数据。但这并不能证明我在这个过程中没有破坏一些内存,假设我忘记释放一半的内存并丢失了指针(经典的 memleak)。该代码可能会通过大部分单元测试。

所以现在的问题是:用 ie Valgrind 运行整个单元测试代码并让他检测任何 malloc/free 问题是个好主意吗?(或者也许编译成电子围栏之类的东西?)

感觉是个好主意,但我不确定我要在这里做什么......

谢谢约翰


更新:感谢道格拉斯和乔纳森,这似乎是个好主意,我应该继续这样做:-)

更新: Valgrind 是一个有趣的工具,但是我发现这样做的第一个 memleaks 是在测试框架中,而不是我自己的代码(虽然很有趣)。因此,对其余部分的提示是在颠倒您自己的代码之前验证您正在使用的单元测试框架没有泄漏。在我的案例中,只需要一个空的测试用例,从那时起,除了单元测试框架之外什么都没有运行。

0 投票
4 回答
5663 浏览

openssl - openssl / valgrind

我有一个必须计算文件 MD5 的应用程序,我使用了 openssl 库,valgrind 抱怨某些块仍然可以访问。

编译以下代码:

使用 valgrind 运行它,这就是我得到的:

有人有同样的经历吗?

0 投票
1 回答
402 浏览

c++ - 在 Valgrind 中运行程序时如何调试?

我正在完成一个代码模块,并想通过 Valgrind 运行我的程序以确保我已经考虑了所有内存,但是我的程序失败了一个断言,该断言在单独运行时不会失败。从 Valgrind 运行时是否可以在调试器中停止?我目前正在阅读手册,但我想我可以更快地从你们那里得到答案。

0 投票
2 回答
9927 浏览

c++ - 最喜欢的 Valgrind 选项

我通常使用这个:

但不确定它是否一方面检查所有内容,另一方面过于冗长。你最喜欢的选择是什么?

0 投票
6 回答
23976 浏览

c++ - 我应该担心“条件跳转或移动取决于未初始化的值”吗?

如果您使用过 Memcheck(来自 Valgrind),您可能会熟悉此消息...

条件跳转或移动取决于未初始化的值

我已经读过这个,当你使用一个未初始化的值时它就会发生。

这会起作用,因为s它是自动初始化的……所以如果是这样的话,而且它起作用了,为什么 Memcheck 告诉我它没有初始化?是否应该忽略该消息?

也许我误解了错误指向我的地方。从 Valgrind 手册中,实际的错误片段是......

但是,在我的代码中,我看不到类似的东西。然而,我注意到堆栈跟踪 Memcheck 顶部的函数显示我是一个虚函数;这可能与它有关吗?

更新1:

我查看了 GlutApplication.cpp:120,看起来未初始化的变量正在传递给该行的函数。简单的!

0 投票
2 回答
2813 浏览

c++ - 为什么 Valgrind 说我的 std::map 实现产生内存泄漏?

Valgrind 正在输出以下内容:

这可能意味着什么?

0 投票
2 回答
1736 浏览

c++ - 为什么 Valgrind 不喜欢我对 glutCreateWindow 的使用?

我正在使用以下代码...

... Valgrind 给了我以下...

但是什么是未初始化的?title 变量用 Title.c_str() 的值初始化,Title 是一个类成员,在构造函数成员初始化列表中初始化......

0 投票
3 回答
7696 浏览

c - Valgrind 是否存在已知的误报问题?

Valgrind 是否有任何已知的误报?我使用该函数得到“条件跳转或移动取决于未初始化的值” fmemopen,用 C 语言编写并用 GCC 编译。我能确定它是真的吗?

编辑:是否存在抑制文件中没有的已知问题?是否有一些事情可以在程序中做,这不是真正的错误,但 Valgrind 会说它们是?如果有已知问题,列表会很好。

0 投票
7 回答
30640 浏览

windows - Windows Callgrind 结果浏览器,KCacheGrind 的替代品

除了 KCacheGrind 之外,是否有任何工具能够查看 callgrind 结果?最好用于 Windows 平台?

0 投票
1 回答
2740 浏览

unit-testing - Valgrind 自动测试——它们在某处使用过吗?

你认为基于 valgrind 的工具套件运行一组自动测试有意义吗?您听说过或看到过这样的设置吗?这种设置可以执行哪些自动(不受人类直觉影响)操作?