摘要:简介 开发人员面临的最大问题之一是生产问题何时发生。开发人员必须快速找到问题的根本原因,或者在开发环境中复制相同的问题来解决问题。由于时间是至关重要的,在这方面,迟迟得不到根本原因可能导致客户的金钱损失或导致公司的声誉损失。有效地解决生产问题和缩短周转时间的方法很少。 调试问题的方法 检查调用堆栈的
阅读全文
摘要:什么是System.TypeInitializationException 作为类初始值设定项引发的异常的包装器而引发的异常。 继承 Object Exception SystemException TypeInitializationException 详细说明 当类初始值设定项初始化类型失败时,
阅读全文
摘要:简介 编写整洁的应用程序是一回事。但是当用户告诉你你的软件已经崩溃时,你知道在添加其他功能之前最好先解决这个问题。如果你够幸运的话,用户会有一个崩溃地址。这将大大有助于解决这个问题。但是你怎么能用这个崩溃地址来判断出了什么问题呢? 创建Map文件 首先,你需要一个Map文件。如果没有,使用崩溃地址几
阅读全文
摘要:本文讨论如何使用Windows事件查看器获取实际崩溃的模块以及代码中崩溃的位置。示例代码是用C++编写的,以生成不同类型的崩溃,例如访问冲突和堆栈溢出。 简介 我经常听同事和QA那里听说,一个特定的崩溃很容易在客户机上重现,而不是在他们的机器上重现。这是一个棘手的问题,因为开发人员无法在客户机上调试
阅读全文
摘要:简介 让我们从我写这篇文章的原因开始。一天,一个同事让我帮他调试他遇到的问题。所以我看着他在输入代码,这时我注意到下面一行: int test = GetLastError(); 他这样做是因为他想知道错误代码,如果之前的函数失败了。他每次想知道错误代码就加上这一行。我建议他删除所有这些行并在他的监
阅读全文
摘要:如何在调试会话中找到调试对象中使用的.NET运行时版本?以自动/脚本方式,不使用调试器扩展或符号? 答案: !for_each_module .if ( ($sicmp( "@#ModuleName" , "mscorwks") = 0) | ($sicmp( "@#ModuleName" , "m
阅读全文
摘要:有许多选项可用于控制符号的加载和使用方式。这些选项可以通过多种方式设置。 下表列出了这些符号选项: FlagOption NameDefault in debuggerDefault in DBH 0x1 SYMOPT_CASE_INSENSITIVE On On 0x2 SYMOPT_UNDNAM
阅读全文
摘要:问题的引出 我在调试某个崩溃问题时,要跟踪clr的栈,于是,我先执行了指令.loadby sos clrjit,没有报错,然后我又执行!clrstack,结果却有如下输出:0:000:x86> !clrstackCLRDLL: Consider using ".cordll -lp <path>"
阅读全文
摘要:找到个好东西 为什么要归档 此存档提供帮助,并可能提供对以下问题的答案 是否可以使WinDBG在符号存储中找到mscordacwks.dll?, Windbg需要不同版本的mscordacwks.dll,如何下载mscordacwks和mscorwks的正确版本?, WinDbg要求mscordac
阅读全文
摘要:.cordll (控制CLR调试) 简介 .cordell命令控制托管代码调试和Microsoft.NET公共语言运行库(CLR)。 使用形式 .cordll [Options] 参数 Options使用以下一个或多个以下选项:-l (小写的 L) 加载 CLR 调试模块。 -IModule (大写
阅读全文
摘要:概要 本文分步介绍了如何使用 WinDbg 调试程序 (windbg.exe) 调试 Windows 服务。 要调试 Windows 服务,可以在服务启动后将 WinDbg 调试程序附加到托管该服务的进程,或者可以配置服务以在启动时附加 WinDbg 调试程序,以便解决与服务启动相关的问题。 本文将
阅读全文
摘要:粗略察看一 下.pdb 文件,会发现在其起始位置存放的是这样一个字符串“Microsoft C/C++ program database 2.00”。可以看出 PDB 是 Program Database 的首字母缩写。在 MSDN 中或 Internet 上搜索一下有关 PDB 内部结构的信息,你
阅读全文
摘要:虽然我希望.NET PDB文件与本地PDB文件处理方式相同,但我们在这件事上没有任何选择,因为事情就是这样。我相信微软的调试器团队多年来听到过很多类似帕特里克的评论。也许我们会在未来的Visual Studio版本中看到所有问题都得到解决。帕特里克非常幸运能够通过VPN远程调试到客户机器中。我相信你
阅读全文
摘要:什么是ArgumentNullException 当将 null 引用(Visual Basic 中为 Nothing)传递到不接受其作为有效参数的方法时引发的异常。 继承 Object Exception SystemException ArgumentException ArgumentNull
阅读全文
摘要:什么是AccessViolationException 试图读写受保护内存时引发的异常。 继承 Object Exception SystemException AccessViolationException 说明 当非托管代码或不安全代码尝试对尚未分配的或不具有访问权限的内存进行读写操作时, 会
阅读全文
摘要:什么是TargetInvocationException 由通过反射调用的方法引发的异常。 继承 Object Exception ApplicationException TargetInvocationException 这是一个包装异常简单地告诉你,一反射 .Invoke()(或类似)失败。要
阅读全文
摘要:本描述了“RSDS”或“DS”类型的pdb(程序数据库)文件的格式,这些文件是由Miscrosoft的link.exe从版本7及更高版本发出的。 什么是PDB文件? 如果选择了/DEBUG选项或/DEBUG:FULL选项,则最新的Microsoft链接器将在链接时创建程序数据库(pdb)文件。pdb
阅读全文