上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 19 下一页

2019年12月6日

关于System.TypeInitializationException异常

摘要: 什么是System.TypeInitializationException 作为类初始值设定项引发的异常的包装器而引发的异常。 继承 Object Exception SystemException TypeInitializationException 详细说明 当类初始值设定项初始化类型失败时, 阅读全文

posted @ 2019-12-06 14:21 活着的虫子 阅读(23386) 评论(0) 推荐(0) 编辑

记一次CLR exception(e0434352)---System.TypeInitializationException

该文被密码保护。 阅读全文

posted @ 2019-12-06 13:58 活着的虫子 阅读(0) 评论(0) 推荐(0) 编辑

使用Map文件查找崩溃信息

摘要: 简介 编写整洁的应用程序是一回事。但是当用户告诉你你的软件已经崩溃时,你知道在添加其他功能之前最好先解决这个问题。如果你够幸运的话,用户会有一个崩溃地址。这将大大有助于解决这个问题。但是你怎么能用这个崩溃地址来判断出了什么问题呢? 创建Map文件 首先,你需要一个Map文件。如果没有,使用崩溃地址几 阅读全文

posted @ 2019-12-06 11:51 活着的虫子 阅读(886) 评论(0) 推荐(0) 编辑

使用Windows事件查看器调试崩溃

摘要: 本文讨论如何使用Windows事件查看器获取实际崩溃的模块以及代码中崩溃的位置。示例代码是用C++编写的,以生成不同类型的崩溃,例如访问冲突和堆栈溢出。 简介 我经常听同事和QA那里听说,一个特定的崩溃很容易在客户机上重现,而不是在他们的机器上重现。这是一个棘手的问题,因为开发人员无法在客户机上调试 阅读全文

posted @ 2019-12-06 10:47 活着的虫子 阅读(7409) 评论(6) 推荐(2) 编辑

利用伪寄存器对MSVC++进行调试的介绍

摘要: 简介 让我们从我写这篇文章的原因开始。一天,一个同事让我帮他调试他遇到的问题。所以我看着他在输入代码,这时我注意到下面一行: int test = GetLastError(); 他这样做是因为他想知道错误代码,如果之前的函数失败了。他每次想知道错误代码就加上这一行。我建议他删除所有这些行并在他的监 阅读全文

posted @ 2019-12-06 09:40 活着的虫子 阅读(220) 评论(0) 推荐(0) 编辑

2019年12月5日

在windbg调试会话中查找.NET版本

摘要: 如何在调试会话中找到调试对象中使用的.NET运行时版本?以自动/脚本方式,不使用调试器扩展或符号? 答案: !for_each_module .if ( ($sicmp( "@#ModuleName" , "mscorwks") = 0) | ($sicmp( "@#ModuleName" , "m 阅读全文

posted @ 2019-12-05 19:04 活着的虫子 阅读(203) 评论(0) 推荐(0) 编辑

调试器符号选项

摘要: 有许多选项可用于控制符号的加载和使用方式。这些选项可以通过多种方式设置。 下表列出了这些符号选项: FlagOption NameDefault in debuggerDefault in DBH 0x1 SYMOPT_CASE_INSENSITIVE On On 0x2 SYMOPT_UNDNAM 阅读全文

posted @ 2019-12-05 17:41 活着的虫子 阅读(768) 评论(0) 推荐(0) 编辑

windbg自行下载的sos.dll存放路径“..\SOS_x86_x86_4.7.3132.00.dll\5B5543296ee000\”里的“5B5543296ee000”是什么?

摘要: 问题的引出 我在调试某个崩溃问题时,要跟踪clr的栈,于是,我先执行了指令.loadby sos clrjit,没有报错,然后我又执行!clrstack,结果却有如下输出:0:000:x86> !clrstackCLRDLL: Consider using ".cordll -lp <path>" 阅读全文

posted @ 2019-12-05 15:39 活着的虫子 阅读(816) 评论(2) 推荐(1) 编辑

Mscordacwks.dll/SOS.dll 调试归档

摘要: 找到个好东西 为什么要归档 此存档提供帮助,并可能提供对以下问题的答案 是否可以使WinDBG在符号存储中找到mscordacwks.dll?, Windbg需要不同版本的mscordacwks.dll,如何下载mscordacwks和mscorwks的正确版本?, WinDbg要求mscordac 阅读全文

posted @ 2019-12-05 11:32 活着的虫子 阅读(306) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---.cordll (控制CLR调试)

摘要: .cordll (控制CLR调试) 简介 .cordell命令控制托管代码调试和Microsoft.NET公共语言运行库(CLR)。 使用形式 .cordll [Options] 参数 Options使用以下一个或多个以下选项:-l (小写的 L) 加载 CLR 调试模块。 -IModule (大写 阅读全文

posted @ 2019-12-05 09:30 活着的虫子 阅读(815) 评论(0) 推荐(0) 编辑

2019年12月4日

记一次内存读写异常0xC0000005崩溃调试中和“The call to LoadLibrary(sos) failed, Win32 error 0n2”

该文被密码保护。 阅读全文

posted @ 2019-12-04 18:13 活着的虫子 阅读(1) 评论(0) 推荐(0) 编辑

如何调试 Windows 服务

摘要: 概要 本文分步介绍了如何使用 WinDbg 调试程序 (windbg.exe) 调试 Windows 服务。 要调试 Windows 服务,可以在服务启动后将 WinDbg 调试程序附加到托管该服务的进程,或者可以配置服务以在启动时附加 WinDbg 调试程序,以便解决与服务启动相关的问题。 本文将 阅读全文

posted @ 2019-12-04 11:40 活着的虫子 阅读(1907) 评论(0) 推荐(0) 编辑

2019年12月3日

.pdb 文件的内部结构

摘要: 粗略察看一 下.pdb 文件,会发现在其起始位置存放的是这样一个字符串“Microsoft C/C++ program database 2.00”。可以看出 PDB 是 Program Database 的首字母缩写。在 MSDN 中或 Internet 上搜索一下有关 PDB 内部结构的信息,你 阅读全文

posted @ 2019-12-03 19:20 活着的虫子 阅读(2344) 评论(0) 推荐(1) 编辑

NET PDB文件到底包含多少秘密?

摘要: 虽然我希望.NET PDB文件与本地PDB文件处理方式相同,但我们在这件事上没有任何选择,因为事情就是这样。我相信微软的调试器团队多年来听到过很多类似帕特里克的评论。也许我们会在未来的Visual Studio版本中看到所有问题都得到解决。帕特里克非常幸运能够通过VPN远程调试到客户机器中。我相信你 阅读全文

posted @ 2019-12-03 19:00 活着的虫子 阅读(430) 评论(0) 推荐(0) 编辑

关于System.ArgumentNullException异常

摘要: 什么是ArgumentNullException 当将 null 引用(Visual Basic 中为 Nothing)传递到不接受其作为有效参数的方法时引发的异常。 继承 Object Exception SystemException ArgumentException ArgumentNull 阅读全文

posted @ 2019-12-03 14:38 活着的虫子 阅读(10647) 评论(0) 推荐(0) 编辑

关于System.AccessViolationException异常

摘要: 什么是AccessViolationException 试图读写受保护内存时引发的异常。 继承 Object Exception SystemException AccessViolationException 说明 当非托管代码或不安全代码尝试对尚未分配的或不具有访问权限的内存进行读写操作时, 会 阅读全文

posted @ 2019-12-03 14:29 活着的虫子 阅读(12542) 评论(0) 推荐(0) 编辑

关于System.Reflection.TargetInvocationException 异常

摘要: 什么是TargetInvocationException 由通过反射调用的方法引发的异常。 继承 Object Exception ApplicationException TargetInvocationException 这是一个包装异常简单地告诉你,一反射 .Invoke()(或类似)失败。要 阅读全文

posted @ 2019-12-03 14:03 活着的虫子 阅读(8076) 评论(0) 推荐(0) 编辑

记一次CLR exception(e0434352)---System.Reflection.TargetInvocationException

该文被密码保护。 阅读全文

posted @ 2019-12-03 09:54 活着的虫子 阅读(3) 评论(0) 推荐(0) 编辑

2019年11月30日

RSDS pdb格式

摘要: 本描述了“RSDS”或“DS”类型的pdb(程序数据库)文件的格式,这些文件是由Miscrosoft的link.exe从版本7及更高版本发出的。 什么是PDB文件? 如果选择了/DEBUG选项或/DEBUG:FULL选项,则最新的Microsoft链接器将在链接时创建程序数据库(pdb)文件。pdb 阅读全文

posted @ 2019-11-30 16:18 活着的虫子 阅读(963) 评论(0) 推荐(0) 编辑

关于windbg报错"No symbols for ntdll. Cannot continue."问题

摘要: 最近我写个例子程序研究下某个异常情况,故意制造了个崩溃。然后分析dmp文件。 当我执行!address -summary命令想观察下进程当前内存情况时,去报如下错误: 0:000> !address -summaryNo symbols for ntdll. Cannot continue. 这意思 阅读全文

posted @ 2019-11-30 11:35 活着的虫子 阅读(2474) 评论(5) 推荐(0) 编辑

2019年11月28日

WinDbg常用命令系列---.cmdtree

摘要: .cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令。必须是一个文本档 使用步骤 1、使用命令创建文本文件test.wl,使用以下示例作为模板。您可以按所需方式修改{}之间的节: windbg ANSI Command Tree 1. 阅读全文

posted @ 2019-11-28 18:46 活着的虫子 阅读(736) 评论(0) 推荐(0) 编辑

正确创建本地C++发布构建PDBS

摘要: 在调试版本中遇到的一个问题是编译本地的C++应用程序。例如,许多局部变量消失了,因为代码生成器没有将它们放在堆栈上,而是将它们放在寄存器中,就像在调试生成中发生的那样。此外,release积极地构建对函数的内联调用,因此代码生成器将函数体直接放入调用方法中。一旦您习惯了编译器的模式,并了解了一点汇编 阅读全文

posted @ 2019-11-28 17:11 活着的虫子 阅读(389) 评论(0) 推荐(0) 编辑

PDB文件会影响性能吗?

摘要: 有人问了这样的问题:"我工作的公司正极力反对用生成的调试信息构建发布模式二进制文件,这也是我注册该类的原因之一。他们担心演示会受到影响。我的问题是,在发布模式下生成符号的最佳命令行参数是什么?还有什么地方我可以参考,以表明不应该有性能问题。“ 回答是:不,生成PDB文件对性能没有任何影响。至于我也可 阅读全文

posted @ 2019-11-28 16:45 活着的虫子 阅读(633) 评论(0) 推荐(0) 编辑

每个开发人员必须知道PDB文件知识

摘要: 大多数开发人员都意识到PDB文件有助于您进行调试,但仅此而已。如果你不知道PDB文件是怎么回事,不要觉得很糟糕,因为虽然有文档在那里,但它分散在周围,而且大部分是为编译器和调试器编写器准备的。虽然编写编译器和调试器非常酷和有趣,但这可能不是你的工作。我想做的是把每个在微软操作系统上进行开发的人都必须 阅读全文

posted @ 2019-11-28 16:28 活着的虫子 阅读(1456) 评论(0) 推荐(2) 编辑

Windbg妙用

摘要: 计算器 当你在调试,需要做一些从十六进制到十进制的简单转换,一些整数计算你不需要切换到calc.exe,你可以只使用windbg的表达式计算器。假设你得到了一个十六进制的大小,比如说2e903000,您可以转换并执行如下计算: 0:000> ?2e903000 Evaluate expression 阅读全文

posted @ 2019-11-28 15:10 活着的虫子 阅读(361) 评论(0) 推荐(0) 编辑

在x64计算机上捕获32位进程的内存转储

摘要: 这是一个我经常遇到的问题,我们经常会遇到这样的情况:我们必须重新捕获内存转储,因为内存转储是以“错误”的方式捕获的。简而言之:如果在64位计算机上执行32位进程,则需要使用允许创建32位转储的工具捕获转储。 怎么知道进程是32位的? 如果您在64位计算机上,可以检查任务管理器以查看您的进程正在使用的 阅读全文

posted @ 2019-11-28 14:22 活着的虫子 阅读(874) 评论(0) 推荐(0) 编辑

为什么我的堆栈上会有奇怪的函数名?(关于符号的讨论)

摘要: 符号可以包含有关全局变量、局部变量、函数名、参数、结构和源行号的信息。符号有三种类型:导出符号、pdb符号(公共符号)和专用pdb符号(专用符号)。导出符号是dll本身的一部分。例如,ntdll.dll和kernel32.dll将其函数的很大一部分公开为导出符号,因此可以将它们称为API,但是在进程 阅读全文

posted @ 2019-11-28 13:42 活着的虫子 阅读(700) 评论(0) 推荐(0) 编辑

将windbg与.dmp文件关联

摘要: 如果您厌倦了启动调试器、加载转储文件、设置sympath、加载扩展名等,这里有一个很好的方法,可以在.dmp文件的上下文菜单上获取“调试此转储文件”,并自动加载所有您喜欢的命令。首先创建一个包含以下内容的.reg文件(在修改注册表时一定要非常小心) Windows Registry Editor V 阅读全文

posted @ 2019-11-28 10:39 活着的虫子 阅读(412) 评论(0) 推荐(0) 编辑

在windbg调试.net时遇到的问题

摘要: 调试.net应用程序时,有时会在windbg中收到错误消息。以下是我最常遇到的几个问题。 Failed to start stack walk 启动堆栈遍历失败 如果你运行sos命令!clrstack在线程上显示.net堆栈,而此线程是.net线程,但它当前未运行任何.net代码,sos将提示失败“ 阅读全文

posted @ 2019-11-28 09:16 活着的虫子 阅读(471) 评论(0) 推荐(0) 编辑

2019年11月27日

记一次CLR exception(e0434352)---System.BadImageFormatException异常排查 ,这次情况不一样

该文被密码保护。 阅读全文

posted @ 2019-11-27 15:35 活着的虫子 阅读(3) 评论(0) 推荐(0) 编辑

记一次0x80000003中断异常的排查

该文被密码保护。 阅读全文

posted @ 2019-11-27 14:24 活着的虫子 阅读(2) 评论(0) 推荐(0) 编辑

中断点异常 STATUS_BREAKPOINT(0x80000003)

摘要: 简介 STATUS_BREAKPOINT,值为0x80000003,称为中断指令异常,表示在系统未附加内核调试器时遇到断点或断言。 触发条件 通常中断指令异常可以在以下条件下触发: 硬代码中断请求,如:asm int 3 System.Diagnostics.Debugger.Break(C 35) 阅读全文

posted @ 2019-11-27 11:15 活着的虫子 阅读(23768) 评论(12) 推荐(1) 编辑

2019年11月26日

在WinDbg里使用MEX调试扩展

摘要: 简介 针对WinDbg的MEX调试扩展可以帮助您简化常见的调试器任务,并为调试器提供强大的文本筛选功能。此扩展被Microsoft支持工程师广泛用于解决流程应用程序的故障。 下载&安装 下载mex.exe存档。下载地址https://www.microsoft.com/en-us/download/ 阅读全文

posted @ 2019-11-26 11:58 活着的虫子 阅读(1150) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---|(进程状态)

摘要: |(进程状态) 简介 (|) 命令显示指定进程的状态或当前正在调试你的所有进程。 使用形式 | Process 参数 Process 指定要显示的进程。 如果省略此参数,将显示所有正在调试的进程。 支持环境 模式 仅限用户模式 目标 实时、 崩溃转储 平台 全部 备注 只能在用户模式下指定进程。可以 阅读全文

posted @ 2019-11-26 10:24 活着的虫子 阅读(1167) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---||(系统状态)

摘要: ||(系统状态) 简介 双竖线 ( || ) 命令将打印指定的系统或当前正在调试的所有系统的状态。 使用形式 || System 参数 System 指定要显示的系统。 如果省略此参数,将显示正在调试的所有系统。 支持环境 模式 调试多个目标 目标 实时、 崩溃转储 平台 全部 备注 || 命令仅在 阅读全文

posted @ 2019-11-26 10:15 活着的虫子 阅读(281) 评论(0) 推荐(0) 编辑

2019年11月25日

WinDbg常用命令系列---.write_cmd_hist (写命令历史记录)

摘要: .write_cmd_hist 简介 .write_cmd_hist命令将调试器命令窗口的整个历史记录写入文件。 使用形式 .write_cmd_hist Filename 参数 Filename指定要创建的文件的路径和文件名。 支持环境 此命令仅在 WinDbg 中可用,并能在脚本文件。 模式 用 阅读全文

posted @ 2019-11-25 19:07 活着的虫子 阅读(477) 评论(0) 推荐(0) 编辑

2019年11月23日

WinDbg常用命令系列---!findstack

摘要: !findstack 简介 !findstack扩展查找包含指定符号或模块的所有堆栈。 使用形式 !findstack Symbol[DisplayLevel] !findstack -? 参数 Symbol指定符号或模块。 DisplayLevel 指定显示内容。这可以是以下任何一个值。默认值为1 阅读全文

posted @ 2019-11-23 16:34 活着的虫子 阅读(278) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---!peb

摘要: !peb 简介 !peb显示进程环境块(PEB)中信息的格式化视图。 使用形式 !peb [PEB-Address] 参数 PEB-Address要检查其PEB的进程的十六进制地址。(这不是从进程的内核进程块派生的PEB地址。)如果在用户模式中省略PEB地址,则使用当前进程的PEB。如果在内核模式下 阅读全文

posted @ 2019-11-23 16:14 活着的虫子 阅读(1175) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---!teb

摘要: !teb 简介 !teb扩展显示线程环境块(teb)中信息的格式化视图。 使用形式 !teb [TEB-Address] 参数 TEB-Address 要检查其TEB的线程的十六进制地址。(这不是从线程的内核线程块派生的TEB地址。)如果在用户模式中省略了TEB地址,则使用当前线程的TEB。如果在内 阅读全文

posted @ 2019-11-23 16:06 活着的虫子 阅读(979) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---!heap

摘要: !heap 简介 !heap扩展显示堆使用信息、控制堆管理器中的断点、检测泄漏的堆块、搜索堆块或显示页堆信息。此扩展支持段堆和NT堆。使用!heap没有参数列出所有堆及其类型的堆。 使用形式 !heap [HeapOptions] [ValidationOptions] [Heap] !heap - 阅读全文

posted @ 2019-11-23 15:21 活着的虫子 阅读(3425) 评论(0) 推荐(0) 编辑

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 19 下一页

导航