可视化泄漏检测器(VLD)显示空的调用堆栈
Visual leak detector (VLD) displays empty call stack
我使用的是视觉泄漏检测器。它正确地显示了一些泄漏的调用堆栈,但我得到了一些调用堆栈为空的输出,如下所示:
---------- Block 131148 at 0x69B3AF68: 144 bytes ----------
Leak Hash: 0xCA7D251C, Count: 1, Total 144 bytes
Call Stack (TID 1600):
Data:
B8 0A 80 01 01 00 00 00 7F 7D 00 00 00 00 00 00 ........ .}......
00 00 00 00 A4 81 1A 00 17 00 00 00 A8 AE EA 4E ........ .......N
40 EE 22 53 00 00 70 42 FB 19 CC BD D4 E7 2E 00 @."S..pB ........
CD CD CD CD 80 2D FB 6E A0 4A B2 69 20 8D 00 54 .....-.n .J.i...T
D8 6B 6A 54 00 CD CD CD 38 DB 81 01 40 EE 22 53 .kjT.... 8...@."S
CD CD CD CD CD CD CD CD B0 AF B3 69 CD CD CD CD ........ ...i....
60 DB 81 01 40 EE 22 53 E8 03 00 00 CD CD CD CD `...@."S ........
C8 AF B3 69 CD CD CD CD CD CD CD CD CD CD CD CD ...i.... ........
CD CD CD CD CD CD CD CD 00 00 00 00 CD CD CD CD ........ ........
我不知道如何跟踪这样的问题。
如有任何帮助,我们将不胜感激。
您应该尝试在vld.ini
中将输出格式从ascii
更改为unicode
。
堆栈信息必须具有无法转换为ascii
的unicode
字符。
如果VLD是在调试中编译的,这将导致断言。
请参阅VLD网站上的相关主题:https://vld.codeplex.com/workitem/10606
我在评论中发布了一个更改vld.ini的替代方案(需要修改vld源代码并重新编译)。
在vld.ini
中将ascii
更改为unicode
对我不起作用。
但是,将我的项目从包含unicode字符(如汉字)的目录移动到不包含unicode字符串的目录,vld确实显示了调用堆栈。
相关文章:
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 为什么调用堆栈数组会导致内存泄漏
- 是否可以检查悬挂光纤的调用堆栈?
- MSVC __debugbreak() 与 openGL 错误回调一起使用时不会产生调用堆栈
- 以下代码如何工作以每次为唯一调用堆栈唯一实例化模板函数?
- OpenCV 3 Visual Studio 2017 调试,调用堆栈没有.pdb文件
- C/C++中全局调用堆栈的基础
- 是否可以访问代码中的调用堆栈?
- 调用堆栈显示 SIGBUS,这意味着什么
- 打开C++故障转储不会在调用堆栈中显示正确的行
- 将参数推送到调用堆栈 (C++) 的可移植方法
- 是否可以将功能调用堆栈放在堆上
- 未定义对调用堆栈库的引用出现问题
- 我无法获得由 Clang 构建的优化 NDK 应用程序的调用堆栈
- 调用堆栈中的访问冲突
- GDB正在调试一个缺少特定调用堆栈的符号表的核心转储
- C++按引用传递:如何使用调用堆栈
- 从系统调用内部生成调用堆栈
- 使用 .Net 4.0 时出现堆栈不平衡错误,但在使用 .Net 2.0 时不调用堆栈不平衡错误
- 生成所有可能的调用堆栈的树