Визуальный детектор утечки (VLD) отображает пустой стек вызовов

Я использую визуальный детектор утечки. Он отображает стек вызовов правильно для некоторых утечек, но я получаю некоторые выводы, что стек вызовов пуст, как это:

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

Я не знаю, как отследить подобные проблемы.

Любая помощь будет оценена.

1 ответ

Решение

Вы должны попытаться изменить формат вывода с ascii в unicode в vld.ini,

Ваша информация стека должна иметь unicode символы, которые не могут быть преобразованы в ascii,

Если VLD компилируется в отладке, это приводит к утверждениям.

См. Эту связанную тему на веб-сайте VLD: https://vld.codeplex.com/workitem/10606

Я опубликовал альтернативу изменению vld.ini в комментарии (необходимо изменить исходные коды vld и перекомпилировать).

Изменение ascii к unicode в vld.ini у меня не работает.

Но при перемещении моего проекта из каталога, содержащего символы Unicode (например, китайские символы), в каталог not-contain-unicode-chars-directory, vld показывает стек вызовов.

Другие вопросы по тегам