2007年4月25日星期三

Q:运行Win32平台下程序的时候出现了如下问题,这是怎么回事?

A:那是因为,程序由于自身的bug引用了不正常的内存指针(至少从VC MFC编译的可执行体来说是这样子的,其他可以类比)。在使用动态内存分配的应用程序中,有时候程序会因为bug或者和OS互动的偶然性错误出现读写本来可以使用但是“因为特殊原因失效”的内存,这个时候,触发Windows内核的保护机制,“违法”操作的程序被终止运行,回收系统资源。如果是0X00000000一般来说是指到了无效零指针。如果是0X77f8206b,那可能是因为程序的bug导致该片内存区域失效。可以通过一些反向工程工具查看分析错误的位置。

没有评论: