问题标签 [dmalloc]

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 回答
1329 浏览

header-files - 程序配置为使用 dmalloc 救助引用头文件错误

在尝试编译 lynx 时,我使用了“with-dmalloc”配置选项。但编译中止,产生此错误:

这就是 dmalloc.h 中的错误行:

该文件也可以在http://www.filewatcher.com/p/dmalloc-5.5.2.tbz.467309/include/dmalloc.h.html查看

dmalloc 的开发几乎已经停止,所以并不期待上游的修复。有什么帮助吗?

0 投票
1 回答
835 浏览

c - 'ld' 不能链接符号,尽管它们在库中

我在尝试用“dmalloc”编译和链接我的程序时遇到问题。

我有以下目录结构

现在我尝试使用以下命令编译我的程序:

好的,我知道链接符号有问题,ld 根本找不到对 dmalloc_malloc 的引用。然而...

我很困惑……那个符号就在那个图书馆里。为什么'ld'有问题?

0 投票
2 回答
236 浏览

c - dmalloc 库如何确定是否发生了越界访问?

执行此代码时,库 dmalloc 以某种方式确定存在越界内存访问。因为它分配了 1023 个元素并试图访问第 1024 个元素。(数组索引从 0 开始)。

它怎么会知道?

0 投票
2 回答
908 浏览

c++ - 将 dmalloc 与最近的 g++ 一起使用

我正在尝试将 dmalloc 与 g++ 4.7 一起使用。

我收到的错误消息是:

  1. 为什么 C 函数会抛出异常?
  2. 我可以以某种方式告诉编译器在编译时忽略 throw() 说明符吗?

...还是我必须以某种方式修补 dmalloc?

0 投票
1 回答
203 浏览

c - dmalloc 对 vsnprintf 的假设是否有标准的解决方法?

我正在尝试使用 dmalloc 版本 5.5.2 和 glibc 2.17。

dmalloc 中的链接总是会导致段错误。

调试时,我发现 dmalloc 在要格式化有用的调试消息时会调用 vsnprintf(...) 。不幸的是 vsnprintf(..) 本身调用了 free(),所以分段错误的原因是递归。free() 调用 vsnprintf(),vsnprintf() 调用 free() 等等,直到我们用一个巨大的堆栈跟踪进行段错误。

可以通过取消定义 HAVE_VSNPRINTF 和 HAVE_VPRINTF 来快速解决此问题,但是调试消息缺少关键信息。

我已经通过使用不分配内存的古老实现 vsnprintf(...) 破解了我自己的解决方案,但很难相信那里还没有一个好的解决方案。

有没有一种标准的方法可以用 dmalloc 解决这个问题?

0 投票
2 回答
194 浏览

fortran - 为什么这个示例代码(f90、MPI、派生类型)会导致无效的读/写(valgrind 或 dmalloc)?

这是有罪的代码(它与我问的另一个问题有关,这里):

使用 intelMPI 版本 4.0 或 5.0 编译时,我在发送时使用 valgrind 或 dmalloc 收到无效的读/写错误。使用openMPI,这个最小示例还不是很清楚,但是我在从中提取它的大代码中遇到了类似的通信问题。

感谢您的帮助!

0 投票
0 回答
67 浏览

c - dmalloc 日志未格式化堆栈地址

通过在 conf.h 文件中使用以下设置构建 dmalloc lib

并在链接后运行我的代码,日志文件内容具有未格式化的地址信息到函数名称和行号。

我的测试代码如下。

我使用的 Dmalloc optins 是:DMALLOC_OPTIONS=debug=0x4f4ed03,inter=100,log=logfile

0 投票
1 回答
39 浏览

opensuse - openSUSE 中的 dmalloc 在哪里?

哪个 openSUSE rpm 包含 dmalloc?没有存储库有它。尝试从为 SLE 12 找到的 src.rpm 构建它。但是它不包含 libdmalloc* 库。如何做 LD_PRELOAD="libdmalloc.so" ./my_program?还是没有必要?

0 投票
0 回答
328 浏览

dmalloc - php7.1RC5 enable dmalloc编译报错

我只是想用 enable-dmalloc 构建 PHP7

环境:

使用了这个命令:

但它失败并出现错误消息:

我在 gdft.c、gdhelper.h 和 php.h 中看到了源代码,找到了这一行:

可能是 dmalloc 导致了这个错误,但我不知道为什么错误 msg show malloc.h,我检查了一下/usr/include,它有malloc.h两个dmalloc.h文件

我安装了包 libdmalloc 和 libdmalloc-dev 并尝试使用源代码重新安装 dmalloc 但它没有帮助

这些是什么原因造成的,我该如何处理?

0 投票
2 回答
189 浏览

c - dmalloc 提供返回地址信息显示 `unknown'?

当我想使用 dmalloc-5.5.2 来检查跨平台的内存泄漏时。我包含dmalloc.h,通过 mips-gcc-4.3 编译它并将其与./libdmalldm.a. 该应用程序正常工作,最后内存耗尽。但是像这样显示日志:

我认为未知的地方是内存泄漏的地方。但我不知道为什么 dmalloc 不能记录内存分配的文件和行。我阅读了有关 dmalloc 的文档。我发现:

通常,您可以通过 strdup() 或其他例程分配内存,因此列出在 strdup 例程中分配内存的位置的日志文件无助于定位内存泄漏的真正来源 - 调用 strdup 的例程。如果没有跟踪调用堆栈的机制,库就无法查看调用者的调用者(可以这么说)是谁。

但在 dmalloc.h 中,仍然存在:

“未知”信息是否与strdup. 所以我的问题是为什么 dmalloc 打印“未知”?