• Visual Studio调试器指南---Immediate窗口


    在编写代码或调试应用程序时,为了测试某个功能或者显示应用程序的工作状态,经常需要计算简单表达式的值。使用Immediate窗口可以很方便地实现这种操作。该窗口可以计算用户输入的表达式值。

    打开

    • 菜单栏方式
    • 快捷键
      Ctrl+Alt+I

    窗口的使用

    输入命令

    大于号 (>) 作为新行提示符出现在“命令”窗口的左边缘。使用向上键和向下键可滚动显示以前发出的命令。

     
    任务解决方案示例

    计算表达式的值。

    表达式以问号 (?) 开始。

    ? myvar

    切换到“即时”窗口。

    在窗口中输入 immed,不带大于号 (>)。

    immed

    从“即时”窗口切换回“命令”窗口。

    在窗口中输入 cmd

    >cmd

    以下快捷键可以帮助您在“命令”模式中定位。

     
    操作光标位置键绑定

    循环通过以前输入的命令的列表。

    输入行

    向上键和向下键

    向上滚动窗口。

    命令窗口内容

    Ctrl+向上键

    向下滚动窗口。

    命令窗口内容

    向下键或 Ctrl+向下键

    标记模式

    在“命令”窗口中单击前面的任何行时,将自动切换到“标记”模式。这允许您像在任何文本编辑器中那样选择、编辑和复制以前命令的文本,并将其粘贴到当前行中。

    等号 (=)

    用于输入 EvaluateStatement 命令的窗口确定是将等号 (=) 解释为比较运算符还是赋值运算符。

    在窗口中,将等号 (=) 解释为比较运算符。不能在窗口中使用赋值运算符。例如,如果变量 varA 和 varB 的值不相同,则命令

    >Debug.EvaluateStatement(varA=varB)

    将返回 False 值。

    与此相反,在“即时”窗口中,将等号 (=) 解释为赋值运算符。例如,命令

    >Debug.EvaluateStatement(varA=varB)

    将为变量 varA 赋予变量 varB 的值。

    参数、开关和值

    有些 Visual Studio 命令具有必选的和可选的参数、开关和值。当处理这些命令时,应用某些规则。下面是一个用来阐明此术语的复杂命令示例。

    Edit.ReplaceInFiles /case /pattern:regex var[1-3]+ oldpar 

    在此示例中,

    • Edit.ReplaceInFiles 是命令。

    • /case 和 /pattern:regex 是开关(以斜杠 [/] 字符开头)

    • regex 是 /pattern 开关的值;/case 开关没有值。

    • var[1-3]+ 和 oldpar 是参数。

      Note注意

      任何包含空格的命令、参数、开关或值都必须用双引号引起来。

    在命令行上,开关和参数的位置可以随便互换,但外壳程序命令是个例外,它要求开关和参数按特定的顺序出现。

    几乎命令所支持的每个开关都有两种格式:短格式(一个字符)和长格式。多个短格式开关可组合为一组。例如,/p /g /m 也可表示为 /pgm

    如果短格式开关组合为一组,而且给定一个值,则该值应用于每个开关。例如,/pgm:123 等同于 /p:123 /g:123 /m:123。如果该组中的任何开关都不接受值,则发生错误。

    转义符

    命令行中的插入符号 (^) 字符表示紧随其后的字符将按原义而不作为控制字符进行解释。这可用于在参数或开关值(开关名除外)中嵌入直引号 (")、空格、正斜杠、插入符号或其他任何字符。例如,

    >Edit.Find ^^t /regex

    插入符号在引号内或引号外的作用相同。如果插入符号是该行的最后一个字符,则忽略不计。

    应用举例

    • 执行Visual Studio命令
      要提交一个命令,需要在命令行的开头输入大于号>。本窗口可以使用的命令非常多,实际上可以在Visual Studio中执行的几乎所有操作都可以通过命令来执行,比如打开文件
    • 调试模式下中断时,查看变量,修改变量,表达式求值,函数调用
      下图演示了变量i的查看,调用函数reset修改 i 的值,以即查看结构体内存对齐

      函数调用时 函数的地址必须存在也就是不能是内联函数等
      函数调用时参数传递不能有自定义类型的构造发生

    说明

    本窗口的一个有用特性是可以在编辑代码时使用它。设计时当在窗口中创建新对象后,Immediate窗口会调用构造函数、并创建该对象的一个实例,而不用运行应用程序的其他部分。

    如果调用包含某个活动断点的方法或属性,就会进入调试模式,并在断点处中断。如果希望测试某个特定的方法,但不想运行整个程序,就可以使用这个特性。

  • 相关阅读:
    在没有源代码的情况下调试JAR包..
    Flex游戏篇——游戏开发概述
    CSDN、sina博客在Zoundry中登记的API URL 收藏
    标准博客 API .BLOG APIS
    SAXParseException An invalid XML character 问题的解决
    分布式存储方法
    拨号720错误解决记.txt
    xxx
    硬盘分区后的逻辑结构
    paip sms to blog.txt
  • 原文地址:https://www.cnblogs.com/yilang/p/12679499.html
Copyright © 2020-2023  润新知