C++ 可视泄漏检测器(VLD)显示空调用堆栈
我用的是可视检漏仪。它正确地显示了一些泄漏的调用堆栈,但我得到的一些输出显示调用堆栈为空,如下所示:C++ 可视泄漏检测器(VLD)显示空调用堆栈,c++,visual-c++,memory-leaks,visual-leak-detector,C++,Visual C++,Memory Leaks,Visual Leak Detector,我用的是可视检漏仪。它正确地显示了一些泄漏的调用堆栈,但我得到的一些输出显示调用堆栈为空,如下所示: ---------- 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
---------- 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是在debug中编译的,这将导致断言
请参见VLD网站上的相关主题:
我在评论中发布了更改vld.ini的替代方案(需要修改vld源代码并重新编译)。在
vld.ini
中将ascii
更改为unicode
,对我不起作用
但是,将我的项目从包含unicode字符的目录移动到不包含unicode字符的目录,vld会显示调用堆栈。使用vld.ini的输出格式是什么?ascii还是unicode?尝试更改它(如果unicode改为ascii或其他方法失败),将不会显示任何输出。这似乎解决了问题,原来是ascii,我改为unicode,现在它显示所有带有调用堆栈的输出。感谢您的回复,请接受“关闭”主题。