Visual Leak Detector(VLD)显示空的调用堆栈

5

我正在使用 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 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     ........ ........

我不知道如何追踪这样的问题。

欢迎提供任何帮助。

2个回答

8
你应该尝试将vld.ini中的输出格式从ascii更改为unicode
你的堆栈信息必须包含无法转换为asciiunicode字符。
如果VLD在调试中编译,则会导致断言错误。
请参见VLD网站上的相关主题: https://vld.codeplex.com/workitem/10606 我在评论中发布了一个更改vld.ini的替代方法(需要修改vld源代码并重新编译)。

0

vld.ini中将ascii更改为unicode对我无效。

但是,将我的项目从包含Unicode字符(例如中文字符)的目录移动到不包含Unicode字符的目录中,vld会显示调用堆栈。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接