2019年12月13日

异常DBG_PRINTEXCEPTION_C(0x40010006)和DBG_PRINTEXCEPTION_WIDE_C(0x4001000A)

摘要: 简介 DBG_PRINTEXCEPTION_C,代码0x40010006;DBG_PRINTEXCEPTION_WIDE_C,代码0x4001000A;在调试器的控制台窗口打印异常信息/调试信息。它定义在 ntstatus.h头文件里,如下: //// MessageId: DBG_PRINTEXC 阅读全文

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

研究下vc++的abort函数

摘要: 最近在调试几个问题时,发现跟abort函数有关,以前只是简单使用,现在却发现不简单,就多留意了下。 简介 abort中止当前进程并返回错误代码。异常终止一个进程。中止当前进程,返回一个错误代码。错误代码的缺省值是3。 代码 /*** *abort.c - abort a program by rai 阅读全文

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

关于DML的一些使用

摘要: DML是一种非常简单的标记语言,它帮助基于现有命令的输出发现和执行新命令。许多WinDbg命令(以及扩展命令)都支持DML。例如,下面是lm D命令,它显示DML输出: 在上面的命令输出中,当我单击“SillyThreadPool”链接时,调试器为我执行了另一个命令lmDvmSillyThreadP 阅读全文

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

掌握Visual Studio断点

摘要: 我知道你现在在想什么。断点?真的吗?关于断点有什么需要掌握的?你按F9然后停在代码行。如果你是这么想的,这篇文章是给你的:继续读 Visual Studio提供了一组相当丰富的断点类型和操作,可以使您的调试体验更加舒适和高效。我们将在这篇文章中讨论四种断点。 条件断点 定义断点时,可以将其与条件关联 阅读全文

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

嵌套异常的循环

摘要: 真是个不可思议的巧合。仅隔几天,我就要解决两个与嵌套异常处理程序有关的问题。具体来说,导致堆栈溢出的嵌套异常的无限循环。这是一个非常致命的组合。堆栈溢出对于调试来说是一个极其严重的错误;嵌套异常意味着异常处理程序遇到了一个异常,这是不可能的;更糟糕的是,堆栈损坏也在幕后发生。请继续阅读以了解诊断嵌套 阅读全文

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

在VMMap中跟踪不可用的虚拟内存

摘要: VMMap是一个很好的系统内部工具,它可以可视化特定进程的虚拟内存,并帮助理解内存的用途。它有线程堆栈、映像、Win32堆和GC堆的特定报告。有时,VMMap会报告不可用的虚拟内存,这与可用内存不同。下面是32位进程(总共有2GB虚拟内存)的VMMap报告示例: 这种“不可用”的内存从何而来,为什么 阅读全文

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

导航