问题标签 [dr-memory]
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.
c - 空程序上的 GCC 内存泄漏?
我刚刚下载了 DrMemory并想检查我的应用程序中的内存泄漏,我发现 DrMemory 在“空程序”上显示内存泄漏!
- 这些内存泄漏从何而来?
- 其次,初学者经常做错什么导致 DrMemory 抱怨未初始化访问的例子是什么?
请注意,我对 C 和所有本地内容相对较新,所以我不明白 DrMemory 在这里告诉我的大部分内容。
memory - 如何在linux中安装和使用dr内存泄漏工具?
我想在我的 linux 环境中安装 dr 内存泄漏工具并在我的进程上运行泄漏工具,有人可以帮助我安装指南以及如何执行该工具。
c - 为什么我的程序只能在调试器中运行?
我正在使用 Dr. Memory 对我今天写的一个 C 程序进行内存调试。使用 MinGW 的 gcc 编译的这个程序只有在我从调试器 gdb 运行它时才有效,所以我假设它是内存错误。内存博士返回给我的 results.txt 文件类似于:
我不知道如何阅读这篇文章,也不知道从哪里开始尝试修复我的程序。这些错误消息是什么意思,我该如何解决?
编辑:这是我的代码:
这是输入文件gift1.in:
linux - 在 Valgrind/DrMemory 中记录程序状态然后恢复它是否可行?
我有一个在启动时加载大量数据的程序。这会占用相当长的时间,因此在运行Valgrind( memcheck
) / DrMemory时会产生开销。所以当用不同的参数多次调用程序时,会占用相当多的时间
我的想法是fork()
在数据加载阶段之后立即使用,然后将孩子交给 Valgrind/DrMemory。即使加载阶段在 Valgrind/DrMemory 下运行,开销也只会发生一次,并且所有fork
ed 子进程应该能够从那里使用预加载的数据。
记录程序状态并将其声明为未污染,然后在 Valgrind ( memcheck
) 或 DrMemory 中恢复该状态是否可行?
注意:我只对 unixoid 平台感兴趣,将其限制在 Linux 上也可以。
c++ - Dr.Memory 发现错误:不知道如何解决
对于博士发现的此类错误,我能做些什么吗?记忆?
代码看起来像这样(为方便起见添加了行):
编译器是 VisualStudio 2008 sp1,语言原生 c++。当然,在将 .rdbuf()->str() 更改为简单的 .str() 之后 - 没有任何改变,错误仍然存在。
c++ - C++ 标准::向量使用 drmemory 给出未初始化的读取错误
我在我的项目中使用 stl 容器,我发现了一个我无法解释的奇怪错误。让我们考虑以下代码:
这会按预期输出 0,但是如果我使用 drmemory 运行内存检查,它会发现未初始化的读取。任何人都可以帮助理解这种行为吗?
平台:win32;编译器:mingw32 - gcc 4.7.2;Drmemory 1.6.0 - 构建 2
visual-studio - 记忆博士集成到视觉工作室 201x
对于一个简单的程序如下:
我收到以下错误。
我已经在三台不同的 PC 上对其进行了测试,并且可以在所有 PC 中重现该问题。
我怀疑问题可能出在管理内存(?)的 ntdll.dll 上。感谢您提供解决问题的任何帮助/指示。
-Satish
c++ - 在 MinGW 上调试内存损坏
我在一个相当大的项目中遇到了一些内存损坏问题,以控制一些科学硬件(约 6000 行),我不确定哪个是解决问题的最佳方法/工具。该项目使用 Qt 4.8,并使用 QtCreator 和 MinGW 构建。该程序或多或少地工作,但我遇到了一些稳定性问题。有时我会随机崩溃,但在某些情况下,当我稍微更改源代码时,程序会在完全相同的位置崩溃(以前工作过的位置)。这次它选择的位置是这样的:
当我在 gdb 中运行它时,第二行给出了分段错误 (SIGSEGV) - 这告诉我程序的内存存在某种问题,因为我确定这两行是正确的。此外,“崩溃站点”会根据确切的源代码而变化;我什至在 Qt 使用的 Windows DLL 中看到过崩溃。
我已经研究了一些选项来找到问题的原因,但我遇到了一些困难:
- 我已经下载了 DUMA,但无法在 MinGW 上编译它——我必须更改包含命令才能创建库,但现在其中一个测试程序失败了。(任何提示或二进制文件的链接,有人吗?)
- 我也尝试过应用程序验证程序,但是当我运行它时,它总是停在同一个位置,我正在使用的第 3 方 DLL 正在泄漏句柄。我有理由确定这不是我的问题的原因,但我无法继续调试过程,因为 gdb 总是回到相同的位置(它只会在我使用应用程序验证程序时卡在那里)。
- 最后,我用 Dr. Memory 运行了我的程序,但它在到达主窗口之前就崩溃了,没有给我任何有用的输出(我唯一看到的是 Qt 显然在浪费一些内存)。
对于最终摆脱此错误的最有希望的方法,我将不胜感激。
c - 指前一个 malloc 中最后一个有效字节之外的 0 个字节
我似乎无意中覆盖了我的 C 程序中的某些部分内存。为了解决这个问题,我真诚地下载了 DrMemory,它会抛出一个错误,通知我发生这种讨厌的行。
我遇到的第一个错误是这个:
根据文档,这意味着我试图访问我首先分配的最后一个内存字节。怎么错了?
触发错误的函数:
dr-memory - 找不到文件日志文件
Dr-Memory 不会调试我的应用程序,我已经尝试了该-logdir
选项(我使用-logdir C:\Users\r0b3\temp\drmemory
)。
错误消息是
有什么提示吗?