gpt4 book ai didi

visual-studio-2010 - 使用 Visual Studio 的调试器查看动态分配的空终止字符串

转载 作者:行者123 更新时间:2023-12-01 15:27:44 29 4
gpt4 key购买 nike

是否有任何方法可以更改 Visual Studio 调试器的默认行为,以便在将鼠标悬停在以 null 结尾、动态分配的字符数组 (C++) 上时,它将显示字符串的完整内容,而不是仅显示第一个字符?

我应该提一下,我正在使用 Visual Studio 2010。如果只有 VS2012 可以实现这一点,我也很想知道!

最佳答案

Visual Studio 有一个有用的链接,C++ Debugger Tips :

To interpret a pointer expression as a string, you can use ‘,s’ for an simple null-terminated string, ‘,s8‘ for a UTF-8 string, or ‘,su‘ for a Unicode string. (Note that the expression has to be a pointer type for this to work).

例如你在下面的函数中打断

void function(char* s)
{
// break here
}

在 MSVC 监 window 口(或调试器)中,您首先会尝试只添加 s,但它只会显示第一个字符。但是根据以上信息,您可以将以下后缀附加到监 window 口中的变量:

s,s8

或者如果您知道它是 unicode,请尝试:

s,su

这甚至适用于任意指针,或者说适用于其他数据类型,例如调试 QString 的内容:

QString str("Test");
// break here

为此,可能的监 window 口(或调试器)语句是:

((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 不起作用,请尝试其他变体。

关于visual-studio-2010 - 使用 Visual Studio 的调试器查看动态分配的空终止字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19363357/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com