Визуальный детектор утечки (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 показывает стек вызовов.