首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于dmalloc关于vsnprintf的假设,有标准的解决办法吗?

对于dmalloc关于vsnprintf的假设,有标准的解决办法吗?
EN

Stack Overflow用户
提问于 2014-08-29 16:44:17
回答 1查看 207关注 0票数 1

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

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

调试时,我发现dmalloc调用vsnprintf(.)当它想格式化有帮助的调试消息时。不幸的是vsnprintf(..)它本身调用free(),因此分割错误的原因是递归。free()调用vsnprintf(),vsnprintf()调用free()等,直到我们用一个巨大的堆栈跟踪来分割错误。

人们可以通过取消定义HAVE_VSNPRINTF和HAVE_VPRINTF来快速修复这个问题,但是调试消息却丢失了关键信息。

我使用了一个古老的vsnprintf(.)实现来解决这个问题。这不分配内存,但很难相信还没有一个好的解决方案。

有什么标准的方法可以用dmalloc解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-29 18:23:12

由于您已经发现这个错误的调用是一个无用的空参数,所以最简单的解决方法似乎是在dmallocfree开头添加free

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25572635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档