【问题标题】:Visual leak detector (VLD) displays empty call stack可视泄漏检测器 (VLD) 显示空调用堆栈
【发布时间】:2016-07-22 19:32:49
【问题描述】:

我正在使用视觉检漏仪。对于某些泄漏,它会正确显示调用堆栈,但我得到一些调用堆栈为空的输出,如下所示:

---------- 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     ........ ........

我不知道如何跟踪此类问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: c++ visual-c++ memory-leaks visual-leak-detector


    【解决方案1】:

    vld.ini 中的ascii 更改为unicode 对我不起作用。

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

    【讨论】:

      【解决方案2】:

      您应该尝试将vld.ini 中的输出格式从ascii 更改为unicode

      您的堆栈信息必须包含无法转换为 asciiunicode 字符。

      如果 VLD 在调试中编译,则会产生断言。

      在 VLD 网站上查看此相关主题: https://vld.codeplex.com/workitem/10606

      我在评论中发布了更改 vld.ini 的替代方法(需要修改 vld 源并重新编译)。

      【讨论】:

        猜你喜欢
        • 2013-01-10
        • 1970-01-01
        • 2011-12-13
        • 1970-01-01
        • 1970-01-01
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        相关资源
        最近更新 更多