约有 1,303 项符合查询结果, 以下是第 78 - 131项。
费时 < 1 秒。
过奖了。
先按问号的顺序,回答一下吧。
我的操作系统知识主要是通过以下三种方式来积累的:
1)长期在这个平台上做开发,先是做应用层,后来做WEB层(ISAPI),后来又做驱动层,十几年下来,典型的开发方式差不多都做过。
2)读了不少书,讲编程的,讲原理的,讲COM的,等等。
3)随时调试和跟踪,借助公开的调试符号,跟踪想了解的地方,反复琢磨分析。
只靠零散的浏览和涉猎是可能不够,应该系统学习一下,有个全方位的认识,比如读一下Windows ...
Posted in 《软件调试》书友
by
格蠹老雷
on 2010-01-10
VS2005和VC6的异常事件定制对话框都有Add按钮,可以添加它本来没有列出的异常...WinDBG也一样。
所以没有列出,只代表VC认为这个异常不常见...
Posted in Windows内核调试
by
格蠹老雷
on 2010-01-07
严格来说,Windows没有把调试当做一种特定的模式来设计,调试支持是内建在内核(NTOSKRNL.EXE)和系统模块(NTDLL.DLL等)中的,任何模式都是可以调试的。因此,可以说,调试模式不会加载额外的模块。
Posted in Windows内核调试
by
格蠹老雷
on 2010-01-03
二者唯一的差异是CPU转去执行处理函数时是否清除IF(中断标志);对于中断门,CPU会自动清除IF标志,屏蔽中断;对于陷阱门,CPU不会自动清除IF标志。
Posted in WinDbg
by
格蠹老雷
on 2009-12-28
要搞清这个问题,需要理解NT分发异常的过程;简单说会分两轮,每一轮会先给调试器。
从上面的信息来看,有代码抛出了C++异常(throw...),VS的集成调试器收到了,打印出消息,并告诉系统不处理这个异常,于是系统继续分发异常,分给程序中的异常处理函数(try{}catch()...),于是有代码处理了这个异常,程序仍然正常工作...
如果想知道是哪一段代码抛出了异常,那么只要配置调试器的异常处理策略,让它收到异常时中断下来;对于VS,也就是在Debug菜单中选Exceptions,弹出配置对话框...
这个异常分发过程对于软件开发和调试都非常重要,但是很遗憾,微软一直没有很好的描述这个过程;于是就连微软自己的很多工程师都糊里糊涂...
如果有《软件调试》,那么11、12章有 ...
Posted in Windows内核调试
by
格蠹老雷
on 2009-12-28
这个问题挺好的,说明楼主的思考已经精确到指令一级。
因为bp, bu都是基于断点指令(x86上即INT 3)工作的,设置断点时,断点位置是被换成断点指令的,所以断点命中时,准确说,那里的INT 3已经执行过了,但是那条本来的指令还没执行呢,因为本来的指令已经被替换掉了。
对于使用ba设置的数据监视断点,中断下来时,访问数据的指令已经执行过了,程序指针指向的是下一条指令。
要完全理解其中的原因,应该知道IA-32把异常分成了三类,根据异常的类型不同,CPU的EIP指针可能指向导致异常的,也可能指向下一条指令,如果有《软件调试》,那么可以看一下表3-1和表4-2。
Posted in WinDbg
by
格蠹老雷
on 2009-12-28
听起来挺严重的;对于使用的Windows版本也有点好奇,W2K,服务器?还是有其它限制不能用高版本?
可以使用双机内核调试看一下。
Posted in Windows内核调试
by
格蠹老雷
on 2009-12-28
从这个错误码的英文描述来看与DLL有关:
Error code: (NTSTATUS) 0xc0000142 (3221225794) - {DLL Initialization Failed} Initialization of the dynamic link library %hs failed. The process is terminating abnormally.
建议尝试从调试器中运行是否有问题,如果有,那么可以进一步看是初始化哪个DLL时发生问题...
Posted in Windows内核调试
by
格蠹老雷
on 2009-12-21
对于调试,可以在内核调试会话(XP下可以用LKD)中切换到指定的进程,然后再用!handle命令
!process 0 0 myexe.exe
.process xxxxx
!handle xx
Posted in Windows内核调试
by
格蠹老雷
on 2009-12-17
上海也够冷的,也在0度附近了
不过冷才像冬天;天气冷下来,再看到街上熙熙攘攘的人流,便会感觉到过年的气息
Posted in 《软件调试》书友
by
格蠹老雷
on 2009-12-17