程序刚开始运行,几乎没做什么事,一按这个组合键,必然出现这个问题。为什么?那位有经验?

解决方案 »

  1.   

    Initially, the handler list for each process contains only a default handler function that calls the ExitProcess function. 
    如果你没有增加handler的话,多半是析构函数之类的有bug。跟踪下就能找到
      

  2.   

    还是不对
    我把程序修改成下面这样了,还是会出现这个问题。
    int main(int argc, char* argv[])
    {
        while(1);
        return 0;
    }
    我的程序本来会调许多模块中的接口,现在都让我屏蔽掉了,是不是屏蔽掉后,那些模块仍然会被链接到?导致我程序出错?我试着重建了一个工程,不包含哪些模块了,就没这问题了。
      

  3.   

    是有全局变量。
    刚才又exclude了几个使用了全局变量的模块,没这问题了。
    我再细查下到底问题出在哪里,有问题及解决了问题后在向你报告。话说,我的全局量都是类的对象,难道析构函数不当也能引发这类问题吗?
      

  4.   

    解决了,情况是这样的。
    我某个类中的析构函数是这样写的:
    ToolList::~ToolList()
    {
    pthread_mutex_destroy(&mutex);
    clear();
    }
    由于先destroy了互斥量,导致clear函数中无法使用。所以,把次序掉一下就好了。改成下边这样
    ToolList::~ToolList()
    {
    clear();
    pthread_mutex_destroy(&mutex);
    }