valgrind

    1热度

    3回答

    我正在尝试编写一个接收消息并读取它们的程序。根据这些消息是什么,然后打印出一些文本。因为这是valgrind警告我的代码的一部分,所以我把它留在那里让你看。据我在网上阅读,应该有一个初始化问题,但我不知道在哪里。 int main(int argc, char* argv[]) { int oprimek = 0; char name[] = "/cmdQueue";

    7热度

    1回答

    想象这样的代码: string f() { string r = "ab"; return r; } int main() { const char *c = f().c_str(); printf("%s.\n", c); return 0; } 该代码可能会崩溃,是吗?因为c指向的字符串被破坏。但是,通过Valgrind运行它不会

    0热度

    1回答

    我正在将库连接到opencv库。我注意到当我为该库运行单元测试可执行文件(使用GTest)时,该valgrind报告内存泄漏/条件跳转或移动取决于未初始化的值,即使测试完全没有做任何事情(只是空的测试方法)。 我将这个问题追溯到我的CMakeLists.txt中的单行 - 当我删除与opencv的链接时,内存泄漏消失。这是releavant片段: find_package(OpenCV REQUI

    0热度

    2回答

    编辑内存空间:这个问题是不是我还以为是,读我(长)问题将免去你前一段时间检查答案。 我一直valgrinding学校我的小C++项目(基本上是语言检测器),但有一组指针我仍然有根据的valgrind的问题。我认为这个问题很经典,可以在下面继续:当我(我想)没有选择时,我应该如何释放一个变量,然后在另一个函数中插入? 这里有两个功能,这使我这个问题的相关部分。基本上,get_modeles_name

    1热度

    1回答

    我有一个程序,它使用fork创建另一个进程,并几乎直接调用可执行文件的execv。我想检查子进程上的内存泄漏。由于主进程启动了许多其他可执行文件并运行了更多的脚本(这些脚本太难以跟踪使用-trace-children选项),我想使用execv从主进程内部调用valgrind,并通过可执行作为参数。 我的代码是这样的 - #include <stdio.h> #include <string.h>

    0热度

    1回答

    当使用helgrind与C++ 11期货和打包任务时,我认为我认为是误报。以下是CentOS6系统上的gcc-6.3.0和valgrind-3.12。我试图按照文档中的建议来提供注释。我做错了什么?我该怎么做才能避免误报,还是真的有比赛? drdws0134$ cat hthread.cpp #include <valgrind/helgrind.h> #define _GLIBCXX_SYN

    0热度

    1回答

    我想记录valgrind memcheck的xml和文本输出结果。 我试过这个命令。 valgrind --tool=memcheck --xml=yes --log-file=TextLog.log --xml-file=XMLFile.log test 但只有XML文件written.text文件没有数据..

    0热度

    2回答

    我目前拥有Mac Sierra 10.12.3,而且我感到意外的是Valgrind尽管有最新版本,但并不兼容。 valgrind: mmap-FIXED(0x0, 253952) failed in UME (load_segment1) with error 12 (Cannot allocate memory). 我想知道是否有解决方案来解决这个问题或另一个调试器(gdb也不工作)。 我不

    0热度

    1回答

    我试图用Valgrind的地块长时间监视进程的内存消耗。该过程是活动的,并在特定的时间间隔执行一些例行操作,我希望看到所有过程的内存消耗。 我启动过程与: valgrind --tool=massif --trace-children=yes <program name> <arguments> 我的计划是建立一个守护进程。 我看到massif为主进程创建一个文件,几乎立即退出,而另一个还活着

    4热度

    2回答

    我试图避免Valgrind的误报,但我吸了atexit()和fork()的组合,尽管使用--trace-children=yes。我的代码: #include <stdio.h> #include <unistd.h> #include <stdlib.h> static int * arr; static void cleanup() { free(arr); p