c++visual-c++memory-leaksvisual-leak-detector

Visual leak detector (VLD) displays empty call stack


I'm using visual leak detector. It displays the call stack properly for some leaks, but I get some outputs that the call stack is empty like this:

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

I don't know how to track issues like this.

Any help would be appreciated.


Solution

  • You should try to change the output format from ascii to unicode in vld.ini.

    Your stack information must have unicode caracters that cannot be converted to ascii.

    If VLD is compiled in debug, this results in assertions.

    See this related topic on VLD web site: https://vld.codeplex.com/workitem/10606

    I posted an alternative to changing vld.ini in a comment (need to modify vld sources and recompile).