草庐IT

Valgrind

全部标签

c++ - 为什么 valgrind 说基本的 SDL 程序正在泄漏内存?

这是SDL程序:#includeintmain(intargc,char**argv){SDL_Init(SDL_INIT_VIDEO);SDL_Surface*screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);SDL_Quit();return0;}用命令编译:g++-otesttest.cpp-lSDL这是valgrind的输出:christian@christian-laptop:~/cpp/tetris$valgrind--leak-check=full./test==3271==Memcheck,amemoryerrordet

c++ - 使用 pthread_create 时出现 valgrind 内存泄漏错误

我正在使用pthread库编写程序。当我使用命令valgrind--leak-check=full运行程序时,我收到以下错误描述:==11784====11784==**HEAPSUMMARY:**==11784==inuseatexit:4,952bytesin18blocks==11784==totalheapusage:1,059allocs,1,041frees,51,864bytesallocated==11784====11784==**288bytes**in1blocksarepossiblylostinlossrecord2of3==11784==at0x4C2380

c++ - 是否有类似于 Windows 的 Valgrind Memcheck 工具在出现免费错误后调试使用?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion在我的工作中,我经常遇到相当常见的编程错误——使用一些已经被释放的对象。这会在C++中调用UB。在linux上,这类问题通常使用Valgrind工具Memcheck来解决。来自Memcheckmanual:Memchecktriestoestablishwhattheillegaladdressmightrelateto,sincethat'softenu

c - 有没有很好的 Valgrind 替代 Windows?

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。我正在研究Valgrind以帮助改进我的C编码/调试,当时我发现它仅适用于Linux-我没有其他需要或兴趣将我的操作系统迁移到Linux,所以我想知道是否有一个同样好的程序window。 最佳答案 正如jakobengblom2所指出的,valgrind有一套工具。根据您所谈论的,有不同的Windows柜台部件。我这里只提OSS或者免费工具。1.内存检查:博士。内存。这是一个相对较新的工具,在Windows7上运行良好。我最喜欢的功

python - 如何在 python 中使用 valgrind?

我正在尝试memcheck我正在编写的Cpython扩展,但我在设置valgrind以使用python时遇到问题。我真的很感激一些建议。就上下文而言,这是Ubuntu13.10、python2.7.5+和valgrind3.8.1。根据Readme.valgrind的建议我做了以下。1)用下载了python源码sudoapt-getbuild-deppython2.7apt-getsourcepython2.72)应用代码补丁,即“取消注释Objects/obmalloc.c中的Py_USING_MEMORY_DEBUGGER”。3)应用了抑制补丁,即“取消注释Misc/valgrin

c++ - Mac OS X Mountain Lion 和 Mavericks 上是否有任何替代 valgrind 的方法来检测 C/C++ 应用程序的内存泄漏?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describetheproblem以及到目前为止为解决这个问题所做的工作。关闭8年前。Improvethisquestion我以前用valgrind在MacOSX10.6(SnowLeopard)和10.7(Lion)上检测我的C/C++应用程序的内存泄漏,但是当我升级我的操作系统时,我发现10.8(MountainLion)和10.9(Maverick

c++ - Valgrind 报告段溢出

使用valgrind/callgrind运行我的程序时,我经常收到以下消息:==21734==线程#1中的brk段溢出:无法增长到0x4a39000(地址不同)请注意,它前面没有堆栈溢出消息。我找不到有关此消息的任何文档,我也不知道究竟是什么溢出。谁能帮我找出问题所在?这是valgrind的问题,还是我的程序的问题? 最佳答案 第1327行,来自valgrindsourcecode指向用户手册,“请参阅用户手册中的限制部分”:Limitssectionitem1:OnLinux,Valgrinddeterminesatstartup

c++ - 如何告诉 valgrind 对 fork 进程进行 memcheck?

我有一个进程x,我想用valgrind检查是否存在泄漏。问题是x由y运行,而y又由z运行。我无法独立运行x因为y和z为x设置了环境,例如环境变量,命令行开关,x等所需的文件。有什么方法可以告诉valgrind在z上运行,但要跟踪它找到的任何fork并报告它们?有什么方法可以告诉valgrind跟随任何分支,但只报告名为x的进程?有什么方法可以告诉valgrind附加到已经运行的进程,就像我可以用gdb做的那样?我不知道这是否重要,但我在SuSE64linux和valgrind-2.4.0下运行。谢谢! 最佳答案 在给定--trace

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

就在几天前,我开始研究一个名为check的单元测试框架,我打算在Linux下对c代码进行测试。现在检查一下,一些设计良好的代码和一些测试代码可以帮助我验证基本功能是正确的,我的意思是很容易只看变量和响应判断一个函数是否正确。但是假设我想测试一个动态内存结构,其中包含大量的malloc和free,事实证明,我可以输入数据并再次取出正确的数据。但这并不能证明我在这个过程中没有破坏一些内存,假设我忘记释放一半的内存并丢失了指针(经典的memleak)。该代码可能会通过大部分单元测试。那么现在的问题是:使用Valgrind运行整个单元测试代码并让他运行是个好主意吗?检测任何malloc/fre

c++ - 2016 年之前的 Valgrind : Memory still reachable with trivial program using <iostream>

编辑:我已经投票决定关闭这是不是现在不正确。2016年3月,Valgrind获得了一个选项“--run-cxx-freeres=”(默认为yes)。这将调用libstdc++函数来释放用于iostream之类的一次性分配。如果您使用的是2016年后的Valgrind和libstdc++,您将获得==9356==HEAPSUMMARY:==9356==inuseatexit:0bytesin0blocks==9356==totalheapusage:1allocs,1frees,72,704bytesallocated==9356====9356==Allheapblockswerefr