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 的未定义引用