有没有办法更改 Visual Studio 调试器的默认行为,以便将鼠标悬停在以 null 结尾的动态分配的字符数组 (C++) 上时,它将显示字符串的完整内容,而不仅仅是第一个字符?
我应该提到我正在使用 Visual Studio 2010。如果有一种方法可以仅在 VS2012 中实现这一点,我也有兴趣知道!
有一个关于 Visual Studio 的有用链接,C++ 调试器提示:
要将指针表达式解释为字符串,可以使用“,s”表示简单的空终止字符串,使用“,s8”表示 UTF-8 字符串,或使用“,su”表示 Unicode 字符串。 (请注意,表达式必须是指针类型才能工作)。
例如,您中断以下函数
void function(char* s)
{
// break here
}
在 MSVC 中观察窗(或调试器),您首先尝试添加s
但它只会显示第一个字符。但根据上述信息,您可以将以下后缀附加到监视窗口中的变量:
s,s8
或者如果你知道它是 unicode,请尝试:
s,su
这甚至适用于任意指针,或者说适用于其他数据类型,例如调试a的内容QString
:
QString str("Test");
// break here
为此,可能的监视窗口(或调试器)语句是:
((str).d)->array,su <-- debug QString (Qt4) as unicode char string
(char*)str.d + str.d->offset,su <-- debug QString (Qt5) as unicode char string
0x0c5eae82,su <-- debug any memory location as unicode char string
如果附加,s8
或分别,su
不起作用,请尝试其他变体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)