可视检漏仪(VLD)显示空调用堆栈

时间:2016-04-03 07:20:04

标签: c++ visual-c++ memory-leaks 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 个答案:

答案 0 :(得分:6)

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

您的堆叠信息必须包含无法转换为unicode的{​​{1}}个字符。

如果在调试中编译VLD,则会导致断言。

请参阅VLD网站上的相关主题: https://vld.codeplex.com/workitem/10606

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

答案 1 :(得分:0)

y1中将fig, axes = plt.subplots(2,1, sharex=True, gridspec_kw={'hspace':0}) # plot something on y1 axes[0].bar([0,1],[2,3],width=-0.4, align='edge') # y2 and plot something ax1 = axes[0].twinx() ax1.bar([0,1],[4,5], width=0.4, align='edge', hatch='o') # y3 with invert yaxis axes[1].bar([0,1],[10,15], width=0.4, hatch='//') axes[1].invert_yaxis() 更改为ascii对我不起作用。

但是将我的项目从包含Unicode字符(例如汉字)的目录移动到not-located-unicode-chars-directory时,vld确实显示了调用堆栈。