2010年6月 的存档

RtlCaptureContext可以用来获取调用者的线程环境结构CONTEXT,但有个很重要的前提,就是调用者必须是bp-based frame的函数,所谓的bp-based frame,就是指函数开头有push ebp/mov ebp, esp指令,如果调用者不是bp-based frame的,则RtlCaptureContext有可能产生0xC0000005异常而使程序退出,这取决于调用者的ebp值,看看RtlCaptureContext的实现就知道了: @RtlCaptureContext: push ebx mov ebx, dword ptr [esp+8] mov dword ptr [ebx+B0], eax mov dword ptr [ebx+AC], ecx mov dword ptr [ebx+A8], edx mov eax, dword ptr [esp] mov dword ptr [ebx+A4], eax mov dword ptr [ebx+A0], esi mov dword ptr [ebx+9C], edi jmp short @L00000001 mov edi, edi push ebx [...]

2010年6月30日14:38 | 1 条评论
分类: C/C++
标签:

官方2010.06.11更新1827 General release版。 Special thanks to BRD.

2010年6月21日13:56 | 5 条评论
分类: 原创作品

今天发现的,测试VS2010简中版存在此BUG。 // vcpkgsrv.exe无限循环崩溃测试 // // 把下面的代码粘贴到任意.h或者.cpp里, // 等VS2010分析完文件,vcpkgsrv.exe将会崩溃退出, // 然后VS2010会重新启动vcpkgsrv.exe,接着继续崩溃 class A { public: virtual void test() {} }; class B : public A { public: // 这里不小心少写了个void,然后vcpkgsrv.exe就崩溃了 virtual test() {} };

2010年6月9日19:57 | 7 条评论
分类: C/C++
标签: