Visual Studio 调试器可以显示未引用/未转义的字符串吗?

Posted

技术标签:

【中文标题】Visual Studio 调试器可以显示未引用/未转义的字符串吗?【英文标题】:Can the Visual Studio Debugger display strings unquoted/unescaped? 【发布时间】:2013-09-16 13:09:20 【问题描述】:

Visual Studio 中的托管调试器(我使用的是 11.0)显示包含双引号和反斜杠的字符串值,如下所示:

"\"Text\":\"C:\\\\Temp\""

有时我想以简单的形式显示一个像上面这样的转义文本:

"Text":"C:\\Temp"

我知道文本可视化器可以通过值旁边的放大镜访问,但在调试某些文本操作例程时这相当麻烦。

有没有办法改变调试器中字符串值的显示?

【问题讨论】:

【参考方案1】:

我看到两个选项可能比每次点击放大镜都更方便,具体取决于具体情况:

    右键单击该值并点击“添加到观察”,然后编辑添加到观察的表达式并在末尾添加,nq(“无引号”format specifier)。例如,“myJsonObject.JsonText,nq”。从那时起,查看 Watch 窗口(而不是数据提示)以查看单步执行代码时的值。

    使用OzCode,右键单击表达式并选择Add Custom Expressions,并在末尾添加一个带有,nq的自定义表达式。例如:[obj].JsonText,nq

全面披露: OzCode 是我与人合着的一个商业 VS 扩展,目前在测试阶段免费。

【讨论】:

【参考方案2】:

我刚刚在调试器窗口中发现了另一种方法。

代替

?myStringVariable

使用

System.Diagnostics.Debug.print(myStringVariable, "nq")

这似乎停止了双引号。

编辑:更简单的方法:

?myStringVariable,nq

这在 Visual Studio 2015 中对我有用

【讨论】:

遗憾的是它在 javascript 中不起作用。自从发现这一点后,我在代码中添加了几个转储函数,例如“DumpDataTable”,我可以使用 ?DumpDataTable(myDataTable),nq ...

以上是关于Visual Studio 调试器可以显示未引用/未转义的字符串吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2019 中首次启动时,Android 模拟器未显示在调试菜单中

Xamarin 项目未显示在 Visual Studio Android 模拟器上

与代码块一起使用时,使用 Visual Studio 创建的静态库显示对 Myfunction 的未定义引用

Android 模拟器未在 Visual Studio 中显示

Visual Studio 调试时无法命中断点

Visual Studio 丢失了所有引用 [关闭]