上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页

2020年7月14日

.net FrameWork怎样映射HRESULT和异常

摘要: COM方法通过返回HRESULT报告错误;.NET方法通过引发异常来报告错误。运行时处理两者之间的转换。.NET Framework中的每个异常类都映射到一个HRESULT。用户定义的异常类可以指定任何适合的HRESULT。这些异常类可以通过在异常对象上设置HRESULT字段来动态更改生成异常时返回 阅读全文

posted @ 2020-07-14 08:23 活着的虫子 阅读(319) 评论(0) 推荐(0) 编辑

2020年7月13日

关于异常STATUS_IN_PAGE_ERROR(0xC0000006)

摘要: 简介 STATUS_IN_PAGE_ERROR 页内故障,这是当Windows尝试从内存映射文件将数据读入RAM并发生阻止数据读取的I / O错误时发生的非常低级别的错误。当它发生在.exe时,如setup.exe程序,这是一个致命的错误,因为它无法执行无法读取的代码。表示0x%p处的指令引用了位于 阅读全文

posted @ 2020-07-13 17:43 活着的虫子 阅读(8245) 评论(0) 推荐(0) 编辑

关于异常System.Runtime.InteropServices.COMException

摘要: 什么是System.Runtime.InteropServices.COMException 从COM方法调用返回无法识别的HRESULT时引发的异常。 继承关系 Object Exception SystemException ExternalException COMException 说明 公 阅读全文

posted @ 2020-07-13 08:06 活着的虫子 阅读(6204) 评论(0) 推荐(0) 编辑

2020年7月10日

关于异常System.OutOfMemoryException

摘要: 什么是System.OutOfMemoryException 当没有足够的内存继续执行程序时引发的异常。 继承关系 Object Exception SystemException OutOfMemoryException 说明 OutOfMemoryException异常有两个主要原因: 您正试图 阅读全文

posted @ 2020-07-10 08:05 活着的虫子 阅读(2960) 评论(0) 推荐(0) 编辑

2020年7月9日

再谈System.ComponentModel.Win32Exception

摘要: 如名称的Win32部分所示System.ComponentModel.Win32Exception仅在处理传统样式的应用程序或代码时发生-应用程序必须调用直接操作系统调用,例如尝试执行其他应用程序。在本文中,我们将深入探讨System.ComponentModel.Win32异常。更详细地说,包括它 阅读全文

posted @ 2020-07-09 07:58 活着的虫子 阅读(10547) 评论(0) 推荐(0) 编辑

2020年7月8日

输入法又一次作案,这次是极点五笔---记输入法引起的崩溃排查

摘要: 支持的同事反应,前端某用户使用系统时,在登录页面点击输入文本框,会崩溃。抓取到一个dmp文件 打开Windbg 加载该dmp Windows 10 Version 18362 MP (12 procs) Free x86 compatibleProduct: WinNt, suite: Single 阅读全文

posted @ 2020-07-08 08:02 活着的虫子 阅读(1354) 评论(0) 推荐(0) 编辑

2020年7月7日

关于异常System.ComponentModel.Win32Exception

摘要: 什么是Win32Exception 就是封装了Win32 Error Code的异常。也就是GetLastError返回的值。Win32错误代码在显示时从其数字表示形式转换为系统消息。使用NativeErrorCode访问与此异常关联的错误代码的数字表示形式 继承关系 Object Exceptio 阅读全文

posted @ 2020-07-07 08:19 活着的虫子 阅读(4838) 评论(0) 推荐(0) 编辑

2020年7月6日

关于C++ EH异常---MFC CMemoryException

摘要: MFC里的CMemoryException异常就是表示内存不足的情况。不需要或不可能进一步限定。内存异常由new自动抛出。例如,如果您使用malloc编写自己的内存函数,那么您将负责抛出内存异常。 不要直接使用此构造函数,而是调用全局函数AfxThrowMemoryException。此全局函数在内 阅读全文

posted @ 2020-07-06 08:18 活着的虫子 阅读(2458) 评论(0) 推荐(0) 编辑

2020年7月3日

记一次MFC CMemoryException异常的排查

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

posted @ 2020-07-03 07:55 活着的虫子 阅读(0) 评论(0) 推荐(0) 编辑

2020年7月2日

windbg执行.cordll -ve -u -l报CLR DLL status: No load attempts原因之一

摘要: 今天在分析一个dmp时,要看CLR栈,习惯性输入.cordll -ve -u -l指令来加载sos扩展,结果报如下错误: CLR DLL status: No load attempts 核对sos.dll版本后,发现版本是对的。突然想起上次执行.loadby sos clrjit报错(参考The 阅读全文

posted @ 2020-07-02 08:02 活着的虫子 阅读(1312) 评论(0) 推荐(0) 编辑

2020年7月1日

关于C++标准异常之std::tr2::sys::filesystem_error

摘要: 类 std::tr2::sys::filesystem_error 定义文件系统库中函数的抛出版重载所抛出的异常对象。 定义于头文件 <filesystem> class filesystem_error; 可以通过what方法获取异常消息,比如: 在windows平台,可能what方法给的消息还不 阅读全文

posted @ 2020-07-01 08:35 活着的虫子 阅读(1558) 评论(0) 推荐(0) 编辑

2020年6月30日

记一次C++异常---std::filesystem::filesystem_error 的排查

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

posted @ 2020-06-30 11:43 活着的虫子 阅读(0) 评论(0) 推荐(0) 编辑

2020年6月29日

详细说说在Vistual studio IDE里使用SOS.dll扩展调试程序

摘要: 通常,我写的问题只在生产环境中表现出来,每次执行某个操作时,您不能在受控开发环境中真实再现这些问题。在这些情况下,您需要使用windbg之类的工具来收集转储并进行事后调试。Windbg对于这些类型的问题非常有效,但它有其缺点,因为它不是真正的托管调试器,所以在.NET代码中设置断点或单步执行代码,甚 阅读全文

posted @ 2020-06-29 08:29 活着的虫子 阅读(456) 评论(1) 推荐(0) 编辑

2020年6月28日

简单聊下c#异常处理

摘要: 在 .NET 中异常处理是一个庞大的模块,专门用来处理程序中的已知可捕获异常,这篇文章我将详细讲解异常处理的细节性的东西,其中包含了异常处理类型、自定义异常处理、多 catch 的异常处理以及异常处理的依赖。 一、异常处理类型 C# 允许我们编写的代码抛出从System.Exception派生的任何 阅读全文

posted @ 2020-06-28 08:14 活着的虫子 阅读(895) 评论(0) 推荐(0) 编辑

2020年6月25日

错误模型(二)

摘要: Bug是不可恢复的错误 我们早期所做的一个重要区别是可恢复错误和错误之间的区别: 可恢复的错误通常是编程数据验证的结果。一些法典审查了世界状况,认为这种情况不可接受,无法取得进展。可能是一些正在解析的标记文本、来自网站的用户输入,或者是暂时的网络连接失败。在这些情况下,程序有望恢复。编写这段代码的开 阅读全文

posted @ 2020-06-25 18:25 活着的虫子 阅读(294) 评论(0) 推荐(0) 编辑

2020年6月24日

错误模型(一)

摘要: 错误模型试图回答的基本问题是:如何将“错误”传达给程序员和系统用户?在回答这个问题时,最大的挑战之一就是定义错误的实际含义。大多数语言将Bug和可恢复的错误归为同一类,并使用相同的工具来处理它们。例如空引用或越界数组访问的处理方式与网络连接问题或解析错误相同。乍一看,这种一致性似乎不错,但它有根深蒂 阅读全文

posted @ 2020-06-24 08:50 活着的虫子 阅读(466) 评论(0) 推荐(0) 编辑

2020年6月23日

The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) failed, Win32 error 0n193 "%1 不是有效的 Win32 应用程序。"

摘要: 今天在调试分析一个dmp文件,要分析clr的栈,于是,输入命令".loadby sos clrjit",结果出现如下错误提示: 0:000> .loadby sos clrjitThe call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4 阅读全文

posted @ 2020-06-23 08:07 活着的虫子 阅读(1488) 评论(0) 推荐(1) 编辑

2020年6月22日

用dt命令搜索查看符号

摘要: 使用WinDgb调试的时候,我们需要和各种结构体等符号打交道。包括系统的符号等等。有时候符号太多了,我们根本记不住或者只有模糊的印象,比如只记得其中的2个字母,怎么办?或者知道符号名,但不知道在哪个模块,特别是使用stl库的时候。这时候dt搜索就可以帮上忙了。使用如下通配符命令即可列出所有的符号 d 阅读全文

posted @ 2020-06-22 08:25 活着的虫子 阅读(414) 评论(0) 推荐(0) 编辑

2020年6月19日

烦人的异常

摘要: 无论是否有异常处理,用任何语言编写良好的错误处理代码都是困难的。当我考虑在一个给定的程序中需要实现什么样的异常处理时,我首先将可能捕获的每个异常分类到四个bucket中的一个,我将其标记为致命的、硬骨头般突出的、烦人的、外部的。 致命的异常不是你的错,你不能阻止它们,你也不能理智地清除它们。它们几乎 阅读全文

posted @ 2020-06-19 08:02 活着的虫子 阅读(189) 评论(0) 推荐(0) 编辑

2020年6月18日

_NT_SYMBOL_PROXY

摘要: 微软符号服务器已经很久没ping通了,挂上全局代理可以下载符号,但是又不想总是开着全局代理。 后来找到一种替代方案,可以通过设置系统环境变量,来让下载符号的流量走代理服务器 _NT_SYMBOL_PROXY 阅读全文

posted @ 2020-06-18 08:17 活着的虫子 阅读(869) 评论(5) 推荐(1) 编辑

2020年6月17日

Windbg常用命令系列---.f+, .f- (切换Local Context)

摘要: .f+, .f- (Shift Local Context) .f+ 命令将帧序号移动到当前堆栈中的下一帧。.f- 命令将帧序号移动到当前堆栈中的上一帧。 语法 .f+ .f- 环境 模式 用户模式、内核模式 目标 活动目标、崩溃转储 平台 所有 注释 帧 (frame)用来指定调试器用来解析局部变 阅读全文

posted @ 2020-06-17 08:08 活着的虫子 阅读(555) 评论(0) 推荐(0) 编辑

2020年6月16日

Windbg常用命令系列---.dumpcab (创建dump CAB文件)

摘要: .dumpcab (Create Dump File CAB) .dumpcab 命令创建一个包含当前dump文件的CAB文件。 语法 .dumpcab [-a] CabName 参数 -a使得当前加载的符号也包含在CAB文件中。对于minidump,所有以加载的映像也会包含进去。使用lml来查看加 阅读全文

posted @ 2020-06-16 08:00 活着的虫子 阅读(192) 评论(0) 推荐(0) 编辑

2020年6月15日

Windbg常用命令系列---.dump(创建dump文件)

摘要: .dump (Create Dump File) .dump 命令创建一个用户模式或内核模式崩溃转储文件。 语法 .dump Options FileName .dump /? 参数 Options指定下面这些选项的一个或多个。/o覆盖具有相同名字的dump文件。如果没有使用该选项又存在一个相同名字 阅读全文

posted @ 2020-06-15 08:01 活着的虫子 阅读(2690) 评论(0) 推荐(0) 编辑

2020年6月12日

Windbg常用命令系列---!mapped_file

摘要: !mapped_file !mapped_file扩展命令显示指定地址所在的内存映射文件所关联的文件名字。 语法 !mapped_file Address 参数 Address指定映射文件的地址。如果Address不在内存映射文件中,则命令失败。 DLL Windows 2000 Uext.dll 阅读全文

posted @ 2020-06-12 08:49 活着的虫子 阅读(448) 评论(0) 推荐(0) 编辑

2020年6月11日

Windbg常用命令系列---!cppexr

摘要: !cppexr !cppexr 扩展显示一个C++ 异常记录的内容。 语法 !cppexr Address 参数 Address指定要显示的C++ 异常记录的地址。 DLL Windows 2000 Ext.dll Windows XP 和之后 Ext.dll 注释 !cppexr 扩展显示和目标遇 阅读全文

posted @ 2020-06-11 08:08 活着的虫子 阅读(190) 评论(0) 推荐(0) 编辑

2020年6月10日

再谈FPO

摘要: 在调试程序的过程中,可能遇到过一两次“FPO”这个词。FPO是指在x86上处理编译器如何访问本地变量和基于堆栈的参数的编译器优化的一个特定类型。对于使用局部变量(和/或基于堆栈的参数)的函数,编译器需要一种机制来引用堆栈上的这些值。通常,这是通过以下两种方式之一完成的: 直接从堆栈指针(esp)访问 阅读全文

posted @ 2020-06-10 08:38 活着的虫子 阅读(931) 评论(0) 推荐(0) 编辑

2020年6月9日

Windbg常用命令系列---!stl

摘要: !stl !stl 扩展命令显示一些已知的标准模板库(STL)的模板。 语法 !stl [Options] Template !stl -? 参数 Options可以包含任意的下面这些选项:-v 显示详细输出。-V显示更加详细的输出,例如包含特定函数何时被调用以及何时返回这样的扩展命令执行过程的信息 阅读全文

posted @ 2020-06-09 08:18 活着的虫子 阅读(400) 评论(0) 推荐(0) 编辑

2020年6月8日

Windbg常用命令系列---.wtitle(设置调试窗口标题)

摘要: .wtitle (Set Window Title) .wtitle 命令设置WinDbg主窗口或者NTSD、CDB、 KD窗口的标题 语法 .wtitle Title 参数 Title窗口要使用的标题。 环境 该命令不能用于脚本文件。 模式 用户模式、内核模式 目标 活动目标、崩溃转储 平台 所有 阅读全文

posted @ 2020-06-08 08:29 活着的虫子 阅读(303) 评论(0) 推荐(0) 编辑

2020年6月5日

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

摘要: !lmi !lmi 扩展显示某个模块的详细信息。 语法 !lmi Module 参数 Module用名字或者基地址指定一个已加载的模块。 DLL Windows 2000 Dbghelp.dll Windows XP和之后 Dbghelp.dll 注释 可以使用lm (List Loaded Mod 阅读全文

posted @ 2020-06-05 08:23 活着的虫子 阅读(1084) 评论(0) 推荐(0) 编辑

2020年6月4日

调试时符号文件问题排查思路

摘要: 符号问题会以各种方式表现出来。可能堆栈回溯显示错误信息,或者不能显示堆栈中的函数名。也可能调试器命令不能识别模块、函数、变量、结构或数据类型的名字。 如果猜测没有正确加载符号,可以通过几个步骤来确认问题。 首先,使用lm (List Loaded Modules)命令来显示已加载模块和符号信息的列表 阅读全文

posted @ 2020-06-04 08:21 活着的虫子 阅读(950) 评论(0) 推荐(0) 编辑

2020年6月3日

windbg里符号状态缩写

摘要: 符号文件的类型和它们的加载状态可以通过lm (List Loaded Modules)命令、 !lmi扩展命令或 WinDbg的Debug | Modules菜单命令获取。 它们都可以显示已加载的模块和它们的符号的信息。 下面这些缩写是这些命令产生的输出中使用的: 缩写含义 deferred 模块已 阅读全文

posted @ 2020-06-03 08:17 活着的虫子 阅读(257) 评论(0) 推荐(0) 编辑

2020年6月2日

符号语法和符号匹配

摘要: 符号用来直接操作被调试程序的助记符(tokens)。例如,可以通过命令bp main 来在main函数上设置断点,或者使用dd MyInt L1命令来显示整数变量MyInt 的值。很多情况下,符号可以作为调试器命令的参数。可以支持大多数数字参数,以及一些文本参数。除了常规的符号语法之外,也有一些适用 阅读全文

posted @ 2020-06-02 08:20 活着的虫子 阅读(446) 评论(0) 推荐(0) 编辑

2020年6月1日

VC8 CRT的默认无效参数行为不会进入调试器

摘要: 在这里工作的人时常感到困惑的一个问题是,如果你碰巧遇到了一个条件,这个条件触发了VC8的“无效参数”处理程序,并且你在这个进程上附加了一个失败的调试器,那么这个进程神秘地退出,而没有给调试器一个检查程序状态的机会问题。对于那些不熟悉这个概念的人,“无效参数”处理程序是微软CRT的一个新添加,如果遇到 阅读全文

posted @ 2020-06-01 08:40 活着的虫子 阅读(303) 评论(0) 推荐(0) 编辑

2020年5月29日

符号延迟加载

摘要: 当我们在windbg里执行lm指令后,回见到如下情况: 有的模块名后面跟的时pdb symbols,表示已加载符号,且后面还跟着符号的详细路径。有的模块后面跟着的是deferred,表示模块已经加载,但是调试器还没有尝试加载它的符号。符号将在需要的时候被加载。那么什么是延迟加载? 符号延迟加载 默认 阅读全文

posted @ 2020-05-29 08:22 活着的虫子 阅读(418) 评论(0) 推荐(0) 编辑

2020年5月28日

记一次格式化输出参数类型不匹配导致崩溃的排查

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

posted @ 2020-05-28 08:15 活着的虫子 阅读(0) 评论(0) 推荐(0) 编辑

2020年5月27日

ntdll!NtTerminateProcess+0xc (FPO: [2,0,0])的FPO: [2,0,0]是什么?

摘要: 经常在调试分析dmup时,会看到很多线程栈在函数的后面会带上FPO,如下所示: 00 00eff818 777beb0d ffffffff 00000000 0107a2ec ntdll!NtTerminateProcess+0xc (FPO: [2,0,0])01 00eff8f0 762c4f3 阅读全文

posted @ 2020-05-27 08:39 活着的虫子 阅读(476) 评论(0) 推荐(0) 编辑

2020年5月26日

STATUS_INVALID_CRUNTIME_PARAMETER和STATUS_INVALID_PARAMETER的区别

摘要: 前面有两个随笔介绍了这两个异常(《异常STATUS_INVALID_PARAMETER(0xC000000D)》和《关于异常STATUS_INVALID_CRUNTIME_PARAMETER(0xC0000417) 》),它们都是参数无效的异常,但针对的对象不一样。STATUS_INVALID_CR 阅读全文

posted @ 2020-05-26 08:17 活着的虫子 阅读(717) 评论(0) 推荐(0) 编辑

2020年5月25日

关于异常STATUS_INVALID_CRUNTIME_PARAMETER(0xC0000417)

摘要: 简介 STATUS_INVALID_CRUNTIME_PARAMETER,值为0xC0000417,又称CRT参数无效异常,其定义如下: //// MessageId: STATUS_INVALID_CRUNTIME_PARAMETER//// MessageText://// An invalid 阅读全文

posted @ 2020-05-25 08:20 活着的虫子 阅读(1161) 评论(0) 推荐(0) 编辑

2020年5月22日

分析崩溃以查找应用程序中的安全漏洞

摘要: 如何确保程序中的崩溃不可利用?简而言之,答案很简单:假设每个崩溃都是可利用的,然后修复它!至少,这是一个质量问题,在产品交付给客户之前解决这个问题通常更便宜、更实用。执行确定可利用性所需的分析可能会相当昂贵。分析与内存损坏相关的程序故障,以了解安全后果可能是一项复杂且容易出错的任务。必须考虑几个因素 阅读全文

posted @ 2020-05-22 08:16 活着的虫子 阅读(670) 评论(0) 推荐(0) 编辑

2020年5月21日

关于异常STATUS_STACK_BUFFER_OVERRUN(0xC0000409)

摘要: 简介 STATUS_STACK_BUFFER_OVERRUN,值为0xC0000409,又称栈缓冲区溢出异常,其定义如下: /// MessageId: STATUS_STACK_BUFFER_OVERRUN//// MessageText://// The system detected an o 阅读全文

posted @ 2020-05-21 10:28 活着的虫子 阅读(11686) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页

导航