摘要:在运行于 Visual Studio 之外的应用程序中发生异常或崩溃时,实时调试会自动启用 Visual Studio。 这样,您便可以在 Visual Studio 没有运行时测试应用程序,并在出现问题时利用 Visual Studio 开始调试。 实时调试不适用于在可视化工具等本机应用程序中承载
阅读全文
摘要:使用线程和进程是调试的重要组成部分。 Visual Studio 提供一个界面,在此界面中,可连接正在运行的待调试进程,可查看在那些进程中运行的附加进程和线程的有关信息,还可以控制正在调试的线程和进程的执行。 在计算机科学中,“线程”和“进程”是两个相关的概念。 二者都表示必须按特定顺序执行的指令序
阅读全文
摘要:Visual Studio 调试器提供了功能强大的命令来控制应用程序的执行。 下面描述了为控制执行利用调试器命令可执行的任务: 开始(或继续)执行 中断执行 停止执行 逐句通过应用程序 运行到指定的位置 设置执行点 开始执行 开始执行是最基本的调试功能之一。 在“调试”菜单上选择“开始”、“逐语句”
阅读全文
摘要:异常是在程序运行时发生的不正常情况。 异常通常表示有需要调试的问题。 发生异常时,调试器将向“输出”窗口中写入一条异常消息,但在““选项”对话框 ->“调试”->“常规””对话框中禁用了该选项的情况除外。 发生异常时,调试器不一定会中断执行。 如果发生了非 ASP.NET 异常并且没有进行处理,调试
阅读全文
摘要:使用 Visual Studio,您可以调试运行在本地计算机或远程计算机上的 64 位应用程序。如果进行本地调试,Visual Studio在 WOW64 下运行,WOW64 是允许 32 位 Windows 应用程序在 64 位 Windows 上运行的 32 位 x86 仿真程序。 只在 x64
阅读全文
摘要:安装 Visual Studio 时,系统会要求您为主要的编程语言选择一组默认的 IDE 设置。 某些语言的默认 IDE 设置可能会隐藏某些调试器命令。如果要使用由默认 IDE 设置隐藏的调试器功能,可以使用以下过程将相应的命令重新添加到菜单中。 还原隐藏的调试器命令 在项目处于打开的状态下,在“工
阅读全文
摘要:Visual Studio 支持从一台计算机到另一台计算机的远程调试。 进行远程调试时,主机可以是任何支持 Visual Studio 的平台。 远程计算机可以是 32 位(Windows Vista、Windows 2000、Windows XP 或 Windows Server 2003)平台,
阅读全文
摘要:有时可能需要调试不属于 Visual Studio 项目的可执行文件。 它可能是在 Visual Studio 外部创建的可执行文件,也可能是从其他用户处接收到的可执行文件。解决此问题的常见方法是在 Visual Studio 外部启动可执行文件并使用 Visual Studio 调试器附加到该文件
阅读全文
摘要:Visual Studio 调试器可以附加到在 Visual Studio 外运行的进程。 可以使用此附加功能执行以下操作: 调试并非在 Visual Studio 中创建的应用程序。 同时调试多个进程。 也可以通过在单个解决方案内启动多个项目来调试多个进程。 调试正在远程计算机上运行的进程。 调试
阅读全文
摘要:本文描述如何调试托管代码和本机代码,这一过程也称作混合模式调试。 根据 DLL 或应用程序是否用本机代码编写,有两种方案可以用来进行调试: 调用 DLL 的调用应用程序是用本机代码编写的。 在这种情况下 DLL 是托管的,托管调试器和本机调试器都必须启用,以调试托管代码和本机代码。 可以在**“<P
阅读全文
摘要:若要从 DLL 项目而不是从调用应用程序启动调试,必须在“<项目> 属性页”对话框或窗口中输入信息以指示 DLL 项目在何处才能找到调用应用程序。 C++“属性页”在布局和内容方面与 C# 和 Visual Basic“属性页”不同。请参考与项目语言相对应的过程。如果托管 DLL 由本机代码调用,并
阅读全文
摘要:微软以不断发明新的专有文件格式而闻名,而.pdb文件的程序数据库格式就是其中之一。许多软件开发人员都在拼命寻找关于PDB内部的更多信息。好消息:搜索结束了!本文将PDB格式记录到最后一位,并提供一个Win32实用程序,该实用程序将复合PDB文件拆分为单独的文件。软件开发和调试工具的编写人员经常面临着
阅读全文
摘要:某些项目设置也对调试产生影响。 这些设置确定诸如调试器查看的目录、用于启动程序的命令和命令参数以及为程序创建的调试信息的类型等内容。 可以在**“属性页”**对话框中更改这些设置。 本文介绍可用选项,并介绍如何进行设置。 如何:指定调试器设置 在 Visual Studio 中可为调试器行为指定各种
阅读全文
摘要:每个开发人员都知道单元测试提高了代码的质量。我们还从静态代码分析中获益,并在我们的构建管道中使用SonarQube等工具。然而,我仍然发现许多开发人员并不知道检查代码有效性的一种更古老的方法:断言。在这篇文章中,我将向您介绍使用断言的好处,以及.NET应用程序的一些配置技巧。我们还将学习.NET和W
阅读全文
摘要:在处理二进制数据时,我们经常使用dt命令将字节分组到有意义的字段中,例如。 0:000> dt ntdll!_PEB @$peb +0x000 InheritedAddressSpace : 0 '' +0x001 ReadImageFileExecOptions : 0 '' +0x002 Bei
阅读全文
摘要:本文概述了从生成进程的内存转储、在一台计算机上运行某个版本的CLR到将转储加载到在另一台计算机上运行的WinDbg所涉及的步骤。在WinDbg中,我们希望加载SOS调试器扩展来查询转储。具体来说,即使WinDbg机器没有安装运行转储进程的机器所安装的CLR版本,SOS也应该加载。 步骤1:生成进程转
阅读全文
摘要:今天我很高兴向您介绍我的第一个WinDbg扩展lld,目前它只包含一个命令:!inject DLL,它允许您将DLL注入正在调试的进程。sdbgext扩展中有一个类似的命令,但它只适用于32位进程。用法非常简单——只要记住以正确的位加载扩展(32位进程的32位版本)。示例会话可能如下所示: 0:00
阅读全文
摘要:默认情况下,在Wireshark中记录跟踪时,在其中找不到进程id。有时这些信息对于调查你所面临的问题是必要的。我这周碰到了这样的一个问题。我需要在虚拟机(本地地址10.0.2.5)上找到一个进程,该虚拟机仍在使用TLSv1连接到我们的负载平衡器。起初,我只在Wireshark中记录了跟踪并对其进行
阅读全文
摘要:简介 ProcDump是一个命令行实用程序,其主要目的是监视应用程序的CPU峰值,并在峰值期间生成崩溃转储,管理员或开发人员可以使用该转储来确定峰值的原因。ProcDump还包括挂起窗口监视(使用与Windows和任务管理器使用的相同的窗口挂起定义)、未处理的异常监视,并且可以基于系统性能计数器的值
阅读全文