约有 1,303 项符合查询结果, 以下是第 84 - 131项。
费时 < 1 秒。
x64使用所谓基于表的异常分发方法, 下面博客中的系列文章详细介绍过:
http://www.nynaeve.net/?p=105
OSR的这篇文章也值得看一下:
http://www.osronline.com/article.cfm?id=469
写''软件调试''时本来打算介绍了,后来担心篇幅...
Posted in Windows内核调试
by
格蠹老雷
on 2009-09-12
你说的非常对,在点确定按扭后,会发起一个系统调用进入内核,然后''重复''进行一系列复杂的转储准备工作.在写''软件调试''时曾经跟踪过这个过程.
BTW, 这个问题是在机场的公共上网电脑上回复的,在这个地方看这样的网站是不是第一次呀?:-)
Posted in C/C++本地代码调试
by
格蠹老雷
on 2009-09-12
简单来说,是IDE和编译器/链接器暗中帮的忙。
首先,在使用IDE创建一个新的项目时,IDE就会根据程序类型自动把常用库文件的.lib文件加入到链接选项中。打开项目属性对话框的链接页,就可以看到IDE默认加入到链接选项中的.lib文件:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
前三个lib文件(kernel32.lib user32.lib gdi32.lib)和advapi32.lib ...
Posted in Windows内核调试
by
格蠹老雷
on 2009-09-06
是的,这里疏忽了,原话是LIDT和SIDT指令......,应该不包括SIDT。
在早期的手册中,关于这条指令的描述是:
SGDT and SIDT are used only in operating system software; they arenot used in application programs.
后来改成王宇引用的样子。
本来是不希望应用层使用的,但是“希望”没管什么用......
Posted in Windows内核
by
格蠹老雷
on 2009-09-04
继续王宇的回答,如果还不知道是否是驱动的问题,那么可以尝试用!memusage命令来dump PFN数据库,在泄露前作一次,在泄露后再做一次,然后把结果(可能很长)复制出来,使用EXCEL或者某个对比工具来比较。
如果定位到是内核池的问题,那么可以使用!poolused命令来进一步定位。
Posted in Windows内核调试
by
格蠹老雷
on 2009-09-02
闪动是一种标准的提示机制,调用FlashWindow或者FlashWindowEx API就可以调用这个功能,《软件调试》13.5.3有介绍,附带的示例程序中有一个小程序FalshWin,可以指定闪动的次数,想闪多少次就多少次。
WORD程序在遇到某些特殊情况时会调用这个API来闪动,作为一种遇到异常情况的提示。
Posted in Windows内核调试
by
格蠹老雷
on 2009-09-02
第一次印刷的在年初就卖完了,现在卖的应该都是第二次印刷的。
Posted in 《软件调试》答疑
by
格蠹老雷
on 2009-09-02
关于第一个问题,对于手工触发的蓝屏(停止码为0xE2,包括使用.crash命令的),KeBugCheck2故意判断了下,如果是就不中断了,看下汇编便可看到这个逻辑:
nt!KeBugCheck2+0x3e6:805260d9 817d08e2000000 cmp dword ptr [ebp+8],0E2h ;看第一个参数,即StopCode是否等于E2805260e0 747e ...
Posted in Windows内核调试
by
格蠹老雷
on 2009-09-01
出问题的情况是因为编译器把nDivisor变量分配在寄存器中了。下面的帖子曾经讨论过:
http://advdbg.org/forums/1292/ShowPost.aspx
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2009-08-31
不必加括号,直接用逗号分隔各个命令,比如:
0:001> ~* e r eax;.echo advdbg;!sym
eax=0092b4e8
advdbg
!sym - quiet mode - symbol prompts on
Posted in WinDbg
by
格蠹老雷
on 2009-08-31