自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 深入浅出 First chance, second chance和ExceptionPort

<br />ExceptionPort的作用,是在用户态异常的第2轮分发过程中,如果第二轮还无人处理,那么就会发到ExceptionPort 。关于异常的分发,部分可以参考 理解UnhandledExceptionFilter <br />对于ExceptionPort,每个普通进程都会设置,CSRSS进程负责监听。CSRSS收到异常消息后一般是立刻终止进程,Win7开始,略有变化。<br />可以使用windbg做个实验,加深对上述概念的理解。来段简单的代码,<br />int main(int argc

2011-02-28 10:31:00 1620

原创 理解UnhandledExceptionFilter

最初发表在QQ空间,全文参见 理解UnhandledExceptionFilter UnhandledExceptionFilter,在一个windows平台上的C/C++程序中,主线程的SEH框架会有2层,最外层是BaseProcessStart,里面是mainCRTStart

2011-02-24 12:32:00 9336 1

原创 为什么对TerminateProcess断点不起作用

最初发表在QQ空间,全文见 为什么对TerminateProcess断点不起作用在内核态下巧设用户模块断点介绍了在内核态下设置用户模块的断点,结尾处留了一个问号,为了简化问题,这次直接在用户态下调试。使用windbg 打开一个notepad程序。设置断点。0:000> bl 0

2011-02-23 10:18:00 2606

原创 实战调试IE8

<br />一个浏览器兼容性bug所想到的 文中提到了IE8有些特殊的地方, 对于开发人员来说,最大的问题是无法调试。关于IE8的更多信息,参见IE 8 不得不说的七件事 <br /> <br />针对IE8这个例子,我们可以考虑使用Windows为应用程序提供的特殊调试能力,系统自动调试设置,配置如下: <br />1)在注册表 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Opti

2011-02-22 09:50:00 1415

原创 在内核态下巧设用户模块断点

<br />假如我们调试内核时,需要在kernel32中设断点。一般情况下,使用调试器中断到内核中时,当时进程和线程都是Idle,<br />kd> !process<br />PROCESS 8054a900  SessionId: none  Cid: 0000    Peb: 00000000  ParentCid: 0000<br />    DirBase: 00039000  ObjectTable: e1000d68  HandleCount: 128.<br />    Image: Idl

2011-02-21 10:51:00 1742

原创 一个浏览器兼容性bug所想到的

<br />是以前做过的一个项目,一个浏览器IE的插件,过滤打开的网页并在网页里用图片显示一些信息。那时还是IE6的时代,没多久出了IE7。这个插件在这2个版本工作的很好。最近心血来潮,想在IE8上试试,没想到图片始终显示不出来。那份代码已经有几年没碰了,抱着试试看的态度,看看到底怎么了。<br /> <br />一开始就很不顺利,当时的开发是用的VS2005,现在的工具则是2010了,项目升级过来,编译没通过,原来是微软把ATL的部分代码开源了,需要单独下载安装,另外2010也修改了一些配置,比如"Use

2011-02-21 10:46:00 724

原创 JIT的初始断点

<br />上网好好的,忽然IE Crash了,windbg作为JIT被自动启动起来,下意识的输入!runaway, ~* kv查看,发现所有的线程都在ntdll!KiFastSystemCallRet,也就是在内核中,一时间很奇怪,那IE怎么crash的?带着这个问题,中饭都没吃好。<br /> <br />苦思了很久之后,一下子顿悟了。当时的断点应该是初始断点,也就是ntdll!DbgUiRemoteBreakin,而真正的罪魁祸首应该还需要再g一下,跳过这个无意义的初始断点,虽然当时的IE已经没了,幸

2011-02-16 14:52:00 866

原创 Breakpoint won't be hit

<br />微软的步伐很快,开发工具一二年就是一个版本,但使用最多最得心应手的还数VC6,感觉从那以后,VS的稳定性差了很多,不是突然卡住,就是表现的莫名其妙。今天一个问题就折腾了大半天,使用VS2010打开一个原来的VC6的项目,是使用MFC写的一个基于对话框的程序,微微修改了下,删除一个没有使用的变量声明,调试就出了状况。在设置断点的地方总是出现<br />"Breakpoint will not currently be hit. Source code is different from the o

2011-02-16 14:49:00 1265

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除