07 2020 档案

Visual Studio /analyze的好处
摘要:Visual C++编译器的分析功能是提高代码质量的一个好方法。它基本上是一个21世纪的“lint”来识别许多编码错误。许多错误对于程序员来说是很难看到的,但是,通过对代码进行适当的注释,/analyze的不屈不挠的眼睛将可靠地找到它们。我最近在一个大型代码库上使用/analyze,发现了大约500 阅读全文

posted @ 2020-07-31 10:27 活着的虫子 阅读(739) 评论(0) 推荐(0) 编辑

符号杂谈
摘要:符号服务器允许Windows上的开发人员工具自动查找符号。他们做得很好,以至于大多数开发人员都不必担心内部机制。然而,当事情出了问题时,了解它们是如何工作的是有帮助的,事实证明,这一切都非常简单。 我对Windows符号服务器的讨论利用了我笔记本电脑上的符号服务器,用于我自己的个人项目。每当我发布一 阅读全文

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

当程序崩溃发生后,我做了如下工作
摘要:这是一个相当简单的错误。使用字节计数而不是字符计数调用了宽字符串函数,从而导致缓冲区溢出。找到问题后,修复方法很简单,只需将sizeof更改为_countof,很容易的。但像这样的BUG浪费时间。由于崩溃,playtest被取消了,而且由于缓冲区溢出破坏了堆栈,因此找到错误代码并非易事。我知道这种类 阅读全文

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

Windows中的线程命名杂谈
摘要:Windows允许您为进程中的线程指定名称,然后调试器可以显示这些名称。这是一个很好的解决方案,但这是一个很好的解决方案。Windows 10 Creators更新(SetThreadDescription)中添加了一个新的线程命名API。Chrome现在使用SetThreadDescription 阅读全文

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

编写脚本增强windbg堆栈、内存窗口
摘要:因为要频繁地使用windbg分析堆栈、参数、以及内存状态,但是windbg的界面跟OD、IDA差距是很大的, 对于漏洞分析或者其它用途来说,用它来分析堆栈、内存是很不方便的,需要多次手工输入命令。 为了简化分析工作,自己闲着蛋疼的时候写了两个脚本来增强windbg的这些功能。 准备:下载以下脚本kr 阅读全文

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

记一次托管内存耗尽而引起的空引用崩溃
该文被密码保护。

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

VC++2013类内存布局变化,造成空间浪费
摘要:VC++编译器通常在编译器版本之间保持高度的二进制兼容性,允许对象在使用不同编译器版本的DLL之间传递。但是VS2013对64位版本中某些类的布局进行了更改。幸运的是,这只影响到一小部分类,如果你真的遇到了这个问题,有一个简单的解决方案。这个简单的解决方案还可以用于减少32位和64位构建中的类的大小 阅读全文

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

如何调试---写给一0基础的同学
摘要:了解如何调试是每个应用程序开发生命周期的一个关键方面。通过调试,开发人员不仅可以识别出发生了异常,还可以系统地遍历应用程序的执行,直到找到并修复罪魁祸首代码。无论解决方案是否需要修复一个小的错误,甚至需要重写系统中的大量组件,只要有足够的时间和人力,简单的调试操作就可以(最终)解决几乎所有问题。然而 阅读全文

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

关于STATUS_PRIVILEGED_INSTRUCTION(0xC0000096)异常
摘要:简介 STATUS_PRIVILEGED_INSTRUCTION 应用程序执行了特权指令,值为0xC0000096。其定义如下: //// MessageId: STATUS_PRIVILEGED_INSTRUCTION//// MessageText://// {EXCEPTION}// Priv 阅读全文

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

关于异常RPC_NT_INVALID_STRING_BINDING(0xC0020001)
摘要:简介 RPC_NT_INVALID_STRING_BINDING即无效的字符串绑定,值为0xC0020001。其定义如下: /// MessageId: RPC_NT_INVALID_STRING_BINDING//// MessageText://// The string binding is 阅读全文

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

可能引发System.OutOfMemoryException的情况和我们能采取的措施
摘要:当调用 StringBuilder.Insert 方法 尝试增加 StringBuilder 对象的长度超出其 StringBuilder.MaxCapacity 属性指定的大小。 下面的示例演示了在示例尝试插入将导致对象的 Length 属性超过其最大容量的字符串时,调用 StringBuilde 阅读全文

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

处理一个COMException异常需要注意的地方
摘要:尽管可以使用COMException类向非托管客户端返回特定的HRESULT,但引发特定的.NET Framework异常比使用泛型异常要好。考虑到托管客户端和非托管客户端都可以使用.NET Framework对象,向托管调用方抛出HRESULT比引发异常更难理解。 以下是对COMException 阅读全文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

记一次MFC CMemoryException异常的排查
该文被密码保护。

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

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 活着的虫子 阅读(1317) 评论(0) 推荐(0) 编辑

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

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

导航