Visual Studio的反汇编窗口

简介: 一、使用“反汇编”窗口       “反汇编”窗口显示与编译器创建的指令对应的汇编代码。如果正在调试托管代码,则这些程序集指令对应于由 JIT 编译器创建的本机代码,而不是由 Visual Studio 编译器生成的中间语言。

一、使用“反汇编”窗口

      “反汇编”窗口显示与编译器创建的指令对应的汇编代码。如果正在调试托管代码,则这些程序集指令对应于由 JIT 编译器创建的本机代码,而不是由 Visual Studio 编译器生成的中间语言。

注意   此项功能不适用于 SQL 调试。

显示“反汇编”窗口

  • 从“调试”菜单中选择“窗口”并单击“反汇编”。(调试器必须正在运行或处于中断模式。)

除程序集指令外,还可显示如下可选信息:

  • 每条指令所在的内存地址(对于本机应用程序,这是实际的内存地址。对于 Visual Basic、C# 或托管代码,这是距离函数开头的偏移量。)
  • 程序集代码派生自的源代码
  • 代码字节(实际计算机或 IL 指令的字节表示形式)
  • 内存地址的符号名
  • 与源代码对应的行号

打开或关闭可选信息

  • 右击“反汇编”窗口并设置或清除快捷菜单中的所需选项。

image图 反汇编窗口

 

左边距中的黄色箭头表示当前执行点的位置。对于本机代码,这对应于 CPU 的程序计数器。该位置显示程序中将要执行的下一条指令。

 

二、调试基础知识:“反汇编”窗口

      “反汇编”窗口显示由源代码所创建的基本指令。当然不是要去读二进制或十六进制机器指令,指令被反汇编为汇编语言格式。(反汇编这个术语来自一个称做反汇编器的程序员工具。汇编器是一个程序,它读入汇编语言代码并将其汇编为可执行的机器指令。反汇编器恰好相反,读入机器代码并将其转化为汇编语言格式。反汇编器有各种用途,如将源代码丢失的程序转换为人工可读的汇编语言程序。)

     汇编语言代码由助记符(指令名称的缩写)和代表变量、寄存器以及常量的符号所组成。每一条机器语言指令由一个汇编语言助记符代表,通常其后还跟有一个或多个变量、寄存器或常量。

      “反汇编”窗口可用于托管或非托管代码。但对于脚本或 SQL 调试是不可用的。

      如果你不会读汇编语言而又想很好地利用“反汇编”窗口,请参考有关汇编语言编程的较好的书。要学会汇编语言编程需要很大决心,但汇编语言也并非某些人想象的那样糟糕。但这超出了我们的讨论范围。

      汇编语言代码严重依赖处理器的寄存器(对托管代码而言,依赖公共语言运行库寄存器),同时使用“反汇编”窗口和“寄存器”窗口(利用它可看到寄存器内容)将很有好处。有关更多信息,请参见调试基础知识:“寄存器”窗口

您很可能愿意使用汇编语言,而从来不会愿意或需要查看原始的、数字形式的机器代码指令。不过,如果愿意的话,可以利用“内存”窗口或从“反汇编”窗口的快捷菜单中选取“代码字节”来查看。

 

参考博客

http://technet.microsoft.com/zh-cn/library/aa290887

相关文章
|
7月前
|
C++ 计算机视觉
Visual Studio 2019 的属性窗口没有Microsoft.CPP.x64.user
本文介绍了解决Visual Studio 2019属性窗口缺少"Microsoft.CPP.x64.user"配置文件的问题,通过创建缺失的配置文件并重新启动VS来解决。
|
Android开发 C++
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
1127 0
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
|
10月前
vs2022如何进入反汇编窗口?
vs2022如何进入反汇编窗口?
|
IDE 开发工具 C语言
使用Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法
使用Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法
|
Windows
【Windows 逆向】OD 调试器工具 ( OD 附加进程 | OD 调试器面板简介 | 反汇编窗口 | 寄存器窗口 | 数据窗口 | 堆栈窗口 )
【Windows 逆向】OD 调试器工具 ( OD 附加进程 | OD 调试器面板简介 | 反汇编窗口 | 寄存器窗口 | 数据窗口 | 堆栈窗口 )
393 0
【Windows 逆向】OD 调试器工具 ( OD 附加进程 | OD 调试器面板简介 | 反汇编窗口 | 寄存器窗口 | 数据窗口 | 堆栈窗口 )
|
C#
Visual studio C#语言输出调试信息到Output窗口方法
原文:Visual studio C#语言输出调试信息到Output窗口方法 1.菜单栏:     工具》选项》调试》将所有输出窗口文本重定向到即时窗口          2.使用Console.
2287 0
|
C#
Visual Studio 监视与快速监视即时窗口没有智能提示
工具-》选项-》文本编辑器-》C# 将 自动列出成员 参数信息 都勾选上
1262 0
|
C++
VS反汇编窗口
默认快捷键为 alt + 8。         如果没有反应,请设置:Tools -- Options -- Debugging -- General:Enable address - level debugging -- Show disassembly if source is not available 前打钩。          中文版本:菜单-工具-选项-调试:代码不可用时显
893 0
汇编语言学习笔记-在窗口打印文本
代码 .386.model flat,stdcall;内存平坦,参数传递约定option casemap:none;大小写敏感;;;;;;引用一些必要的数据include D:\masm32\include\windows.
840 0