Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 使用valgrind获取两点之间的泄漏_Memory_Memory Leaks_Valgrind - Fatal编程技术网

Memory 使用valgrind获取两点之间的泄漏

Memory 使用valgrind获取两点之间的泄漏,memory,memory-leaks,valgrind,Memory,Memory Leaks,Valgrind,我正在使用valgrind查找和跟踪内存问题。现在我想做这样的事情: before = getValgrindState(); do_something_curious(); after = getValgrindState(); difference = after - before; std::cout << difference; before=getValgrindState(); 做一些奇怪的事; after=getValgrindState(); 差异=之后-之前; 你

我正在使用valgrind查找和跟踪内存问题。现在我想做这样的事情:

before = getValgrindState();
do_something_curious();
after = getValgrindState();
difference = after - before;
std::cout << difference;
before=getValgrindState();
做一些奇怪的事;
after=getValgrindState();
差异=之后-之前;

你想测量什么?“差异”应该是什么?如果您想检查内存使用情况,请尝试使用valgrind的。有助于解释结果。

您想测量什么?“差异”应该是什么?如果您想检查内存使用情况,请尝试使用valgrind的。用于解释结果。

执行您想要的操作的基本/破坏性方法是使用
\u exit()
(注意下划线)避免调用任何析构函数

  • 对调用
    \u exit()
  • 做一些奇怪的事()之后,使用
    退出()
    再次运行valgrind/memcheck
  • 比较结果,看看
    还剩下什么

[我不知道massif会怎么做你想做的事(有没有办法让massif跟踪
免费
/
删除
操作,并与我错过的
malloc
/
新的
操作相协调?)

做你想做的事的原始/破坏性方法是使用
\u exit()
(注意下划线)避免调用任何析构函数

  • 对调用
    \u exit()
  • 做一些奇怪的事()之后,使用
    退出()
    再次运行valgrind/memcheck
  • 比较结果,看看
    还剩下什么

[我不知道massif将如何做您想要的事情(有没有办法让massif跟踪
免费
/
删除
操作,并与我错过的
malloc
/
新操作协调一致?)

差分对象应该告诉我分配了哪些对象以及内存到哪里去了。差分对象应该告诉我分配了哪些对象以及内存到哪里去了。我的目标是找到在函数“做一些奇怪的事情”之后仍然存在的对象()已执行。我的目标是查找在执行函数do\u something\u quirier()后仍然存在的对象。感谢您的提示。它需要更多的手工工作,但应该会给我正确的结果。类似的方法,只使用一次执行,就是调用VALGRIND\u DO\u LEAK\u CHECK而不是_exit()。看,你仍然需要自己比较这两份报告。谢谢你的提示。它需要更多的手工工作,但应该会给我正确的结果。类似的方法,只使用一次执行,就是调用VALGRIND\u DO\u LEAK\u CHECK而不是_exit()。看,你仍然需要自己比较这两份报告。