C 如何调试包含210个以上元素的字符数组
我正在使用Visual Studio Express 2013 for Windows Desktop,希望查看变量的值 这看起来很简单:要么打开“Locals”窗口并检查值,要么将其添加到“Watch”窗口,即可读取值 确实如此,但我的变量是一个字符数组(C 如何调试包含210个以上元素的字符数组,c,arrays,visual-studio,watch,locals,C,Arrays,Visual Studio,Watch,Locals,我正在使用Visual Studio Express 2013 for Windows Desktop,希望查看变量的值 这看起来很简单:要么打开“Locals”窗口并检查值,要么将其添加到“Watch”窗口,即可读取值 确实如此,但我的变量是一个字符数组(typedef char T_BufCommandLine[32768];),包含210多个字符,我只看到前210个字符。在那之后,有三个点(“…”),只是提到阵列尚未完成 我知道我可以扩展这个变量的值,但是结果不是很可读,复制其中的一部分是
typedef char T_BufCommandLine[32768];
),包含210多个字符,我只看到前210个字符。在那之后,有三个点(“…”),只是提到阵列尚未完成
我知道我可以扩展这个变量的值,但是结果不是很可读,复制其中的一部分是完全不可能的
所以我的问题是:有人知道我如何将包含210多个字符的字符数组的值可视化为一个字符串,而不使用“…”?在调试器的断点上,将鼠标悬停在变量上,然后单击“looking glass”图标旁边的向下箭头;选择“文本可视化工具” 或者,使用内存窗口:
一个简单的技巧是将您想要的元素复制到一个单独的变量(或分配一个指向该元素的指针),并在分配给snoop它的值之后立即添加一个断点。如果您想继续使用监视窗口,您只需显式指定起始地址即可。毕竟,它只是一个普通的旧数组。调试器知道如何执行指针算法。要查看前210个元素之外的值,只需执行如下操作:
T\u BufCommandLine+210500
您也可以使用即时窗口,但需要准确地告诉它数组的长度。类似于:
?T_BufCommandLine[0],32768
将给您带来大量转储。标准方法是put()
it.)对不起,我无法抗拒。不,我不知道MSVC的方法,别介意我,我现在是一个巨魔,爬回我的石头下面。试着把它保存到一个文件中,然后用matlab可视化它?我想使用这个选项,第一个0x00
会停止可视化工具。@LPs-当然。如果您想要原始字节,请使用内存窗口。非常感谢,我从未听说过“文本可视化器”。这确实解决了我的问题。