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

2023-12-03

有没有办法更改 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(使用前将#替换为@)

使用 Visual Studio 的调试器查看动态分配的空终止字符串 的相关文章

随机推荐

  • 在 PHP 中备份和恢复 MySQL 数据库

    我正在尝试使用 PHP 备份和恢复 MySQL 数据库 Backup dbhost localhost dbuser root dbpass dbpass dbname test output D backup test sql exec
  • 发布带有位置的状态更新

    当您向 Facebook 发布定期状态更新时 它会跟踪您当前的位置并在时间旁边提供 附近的 城市 即 5月24日附近纽约州纽约市 请注意 这是not办理登机手续 我正在尝试做同样的事情 而不搜索页面 地点 id 和签入 我尝试过发布坐标与纬
  • 捆绑包 ID 和 SKU 可以在另一个 iTunes Connect 帐户中重复使用吗?

    我正在从 iTunes Connect 中删除一个应用程序 以便将其重新上传到新公司的新帐户中 从 iTunes Connect 开发者指南中 我了解到只要是从原始帐户以外的另一个帐户完成的 应用程序名称就可以重复使用 但是 Bundle
  • 使用查找/替换来清除 vbNullString

    我有一个电子表格 它在我们的 Enterprise 系统中生成为报告并下载到 Excel 电子表格中 生成的电子表格中的空白单元格并不是真正的空白 即使不存在任何数据 并且空白单元格不包含 空格 字符 例如 A2 中的以下单元格公式返回 T
  • 如何在 Tensorflow 中使用 freeze_graph.py?

    我在冻结 Tensorflow 中的模型时遇到问题 我想在 Unity 中使用它 但它们需要将冻结图作为 bytes 文件而不是 pb 除了 freeze graph py 之外 还有其他方法获取字节文件吗 我不断收到此错误 类型错误 na
  • 在 SQL (MySQL) 中根据今天的日期返回查询结果

    我有一个疑问 我得到了帮助 但我陷入了另一个困境 我的代码是 SELECT a name COUNT AS num FROM table2 b INNER JOIN table1 a ON b status id a id GROUP BY
  • 在网络浏览器中欺骗 URL

    假设我获得了某个页面的源代码 例如http example com 我现在想将此源代码写入 Web 浏览器 使用类似以下内容 myWebBrowser Navigate about blank myWebBrowser Document W
  • 发布到 beta.6 后 angularfire2 无法工作

    angularfire2 发布到 beta 6 后 我无法正确执行我的 Ionic2 应用程序 这就是问题所在 21 54 35 lint finished in 4 51 s 21 54 35 typescript uy Network
  • 带百分比的 SVG 进度圈

    我使用此处找到的代码创建进度圈 http codepen io JMChristensen pen Ablch 但我不希望它那么大 所以我将内圆和外圆的圆半径更改为 40 而不是 90 问题是在我这样做之后 显示百分比的圆停止工作 无论我在
  • 传递给函数的最佳方式是什么 - 变量还是数组/对象?

    将数据传递给函数 变量或数组 对象 的最佳实践是什么 例如 我需要大多数功能的用户信息 我应该传递包含所有信息的完整用户对象 还是只传递我需要的信息 始终是用户名 有时是 id 很少有其他用户信息 function do something
  • 将三个字符的语言代码 (ISO 639-2) 转换为两个字符的代码 (ISO 639-1)

    我正在使用文本转语音 TTS 引擎开发 Android 应用程序 TTS 组件返回可用语言列表作为列表Locale对象 但这两种方法Locale getLanguage and Locale getISO3Language每个Locale对
  • 如何在 Enter 按键时关闭键盘

    我想在按 RETURN 键时关闭键盘 我尝试过将按钮放在视图的背面 但是我怎样才能通过按 RETURN 键来做到这一点呢 BOOL textFieldShouldReturn UITextField textField textField
  • 打开文件对话框以获取 FTP 位置

    当用户浏览 ftp 位置时 我遇到打开文件对话问题 我从 openFileDialogue 获得的路径是本地路径 本地设置临时文件夹 而不是我选择的实际 ftp 路径 如何获取实际的 ftp 路径 您正在哪个版本的 Windows 上运行
  • 获取状态消息的隐私设置?

    有谁知道是否可以查询隐私设置以获取状态更新 我知道您可以将它们用于相册 但对于我的应用程序来说 能够提取不久前的随机状态消息并说 您与所有人分享了这篇文章 您今天还会这样做吗 会很有用 看看人们对在线分享的态度如何变化 我不追求任何花哨的东
  • 如何使用“cp”命令排除特定目录?

    我想复制目录中的所有文件 除了特定子目录中的某些文件 我注意到cp命令没有 exclude选项 那么 我怎样才能实现这一目标呢 rsync快速且简单 rsync av progress sourcefolder destinationfol
  • 更改 observable 但不通知 knockout.js 中的订阅者

    有没有办法忽略可观察值变化的订阅者 我想更改可观察值的值 但不使用 Knockout js 为订阅者执行它 通常这是不可能或不可取的 因为它可能会导致依赖链中的事物不同步 使用限制扩展器通常是限制依赖项接收的通知量的好方法 但是 如果您确实
  • 在完成前一个 AJAX 请求之前中止新的 AJAX 请求

    我有一个函数 可以在输入更改时运行 AJAX 调用 但是 在之前的 ajax 调用完成之前 该函数有可能会再次被触发 我的问题是 如何在开始新的 AJAX 调用之前中止之前的 AJAX 调用 不使用全局变量 参见类似问题的回答here JS
  • 为什么克隆时不执行构造函数[重复]

    这个问题在这里已经有答案了 Animal animal new Animal 101 Constructor is executed Animal clone Animal animal clone Constructor is not e
  • 将浮点数与零进行比较

    C 常见问题解答精简版 29 17 为什么我的浮点比较不起作用 推荐这个平等测试 include
  • 使用 Visual Studio 的调试器查看动态分配的空终止字符串

    有没有办法更改 Visual Studio 调试器的默认行为 以便将鼠标悬停在以 null 结尾的动态分配的字符数组 C 上时 它将显示字符串的完整内容 而不仅仅是第一个字符 我应该提到我正在使用 Visual Studio 2010 如果