我昨天在.NET的VS.NET监视窗口中了解了$ exception。这显示了当前抛出的异常,并且在不需要找到小感叹号图标并将鼠标悬停在其上方时节省了大量时间。
观察窗口中还有哪些其他特殊变量?
(注意:这个问题是关于.NET,而不是C ++。)
答案 0 :(得分:9)
Visual Studio for .NET调试中支持Pseudovariables:
$exception
会显示错误消息。仅在Visual C#中,当禁用异常助手时,发生异常时会自动将$exception
添加到本地窗口。以下仅适用于Visual Basic:
$delete,
变量或$$delete,
变量。$objectid,
表达式或$listobjectids,
表达式。IDynamicMetaObjectProvider
的对象的特殊动态视图节点。接口。语法为$dynamic,
object 。此功能仅适用于使用.NET Framework版本4的代码。请参阅Dynamic View。答案 1 :(得分:8)
如果右键单击Watch窗口中的任何变量,则可以创建对象ID 。这会给你一个数字,例如第一个对象ID为1#。
对象ID 表示特定实例。然后可以在Watch窗口中观察实例,就像常规变量一样,但即使本地引用超出范围,您也可以继续观察实例。当它最终被垃圾收集时,您将无法访问它。
答案 2 :(得分:2)
使用“@err”将显示GetLastError()的值,“@ err,hr”将显示错误消息。
答案 3 :(得分:2)
$ user伪变量是唯一记录的其他变量。在VS2010中,VB.NET调试器获取some new ones。
答案 4 :(得分:2)
@ERR ;上一个错误值,与GetLastError()API函数返回的值相同
@TIB ;当前线程的线程信息块
@CLK ;未记录的时钟寄存器;仅可在Watch窗口中使用
@EAX,@ EBX,@ ECX,@ EDX,@ ESI,@ EDI,@ EIP,@ ESPP,@ EBP,@ EFL ;英特尔CPU寄存器
@ CS,@ DS,@ ES,@ SS,@ FS,@ GS ;英特尔CPU段寄存器
@ ST0,@ ST1,@ ST2,@ ST3,@ ST4,@ ST5,@ ST6,@ ST7 ;英特尔CPU浮点寄存器