【发布时间】:2014-10-16 19:07:11
【问题描述】:
我有一个转储文件,我试图从中提取一个很长的字符串。我找到线程,然后使用以下步骤找到变量并转储它的一部分:
~1s-
dv /v,返回:00000000`07a4f6e8 basicString = class _bstr_t
dt -n basicString
命令 3 将调试控制台中的字符串截断为实际内容的一小部分。
我想做的是找到 _bstr_t 变量的实际长度,以便我可以使用如下命令将其内容转储到文件中:
.writemem c:\debugging\output\string.txt 07a4f6e8 L<StringByteLength>
所以我的问题是如何确定我应该为 StringByteLength 输入什么?
【问题讨论】:
-
BSTR的长度(以字节为单位)存储在第一个字符之前的四个字节中,位于实际BSTR指针指向的偏移量-4处。 -
如果遇到范围错误,请使用
L?<StringByteLength>
标签: visual-c++ windbg