约有 1,303 项符合查询结果, 以下是第 68 - 131项。
费时 < 1 秒。
链接:
http://blogs.technet.com/b/markrussinovich/archive/2005/08/28/the-case-of-the-intermittent-and-annoying-explorer-hangs.aspx
Posted in Windows内核调试
by
格蠹老雷
on 2010-05-26
记得Mark在他的BLOG中分析过一次Explorer进程,进程中的大多数模块都有公开的符号,使用WinDBG分析起来难度不大,可以从~* kn命令看起...
Posted in Windows内核调试
by
格蠹老雷
on 2010-05-26
呵呵,二位都想得很深入。
这里的一个关键问题是CPU在发生异常时会自动向栈里压入包括IP寄存器在内的当前位置信息(参见《软件调试》11.1.3 ...
Posted in C/C++本地代码调试
by
格蠹老雷
on 2010-05-25
原因是CPU对BTS记录的大小做了调整。
typedef struct tagBtsRecord{ DWORD dwFrom; DWORD dwTo; DWORD dwFlags;} BtsRecord, *PBtsRecord;
Pentium M和P4时,这个结构在32位模式时每个字段都是32位的,64位时各个字段都是64位的。
但是后来的CPU统一使用64位了,不管是否工作在32位模式还是64位模式。
也就是说,需要把上面的结构扩展成64位。可以通过cpuid指令来检查CPU的这种特征:
以EAX=1执行CPUID指令,然后判断ECX寄存器的bit 2,即DTES64位:
64-bit DS Area. A ...
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2010-05-20
BTS是通过MSR寄存器来启用的,代码在EnableBTS函数中,最近有些忙,我今晚找时间试一下你说的问题
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2010-05-20
因为目标地址所在的内存页缺少可执行属性(PAGE_EXECUTE_READ),估计是编辑代码时改内存页属性忘记改回去了...
Posted in C/C++本地代码调试
by
格蠹老雷
on 2010-05-19
这个函数是XP时引入的,VC6附带的头文件和lib文件不包含这个函数;
解决的办法是安装新版的SDK,如果机器上安装有VS2005或者更高的版本,那么可以使用这些版本附带的SDK,然后在VC的路径选项中增加指向这些目录的路径。
Tools > Options > Directoies > Include files
Tools > Options > Directoies > Library files
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2010-05-18
NORMAL_PRIORITY_CLASS的定义应该是0x20,9或者7应该是指线程的优先级,建议读一下MSDN中的Scheduling Priorities一节,即:
http://msdn.microsoft.com/en-us/library/ms685100(VS.85).aspx
Posted in Windows内核调试
by
格蠹老雷
on 2010-05-17