MFC:故障排除哪个线程导致崩溃

时间:2009-07-25 22:36:47

标签: windows multithreading debugging mfc crash

我目前让我的项目运行两个独立的线程(一个用于MFC操作,如视图/表单视图,应用程序窗口等,一个用于其主函数中的无限while循环)。但是,对于某些情况,当我在调试模式下运行程序时,我注意到其中一个线程的退出状态是1(换句话说,它向操作系统返回了一个非零数字)。在Visual Studio 2005中运行应用程序时,找出哪个线程负责返回值的最简单方法是什么,以便我可以解决正在发生的事情?提前谢谢。

纳入Steve Gilham的建议:

通过查看Spy ++来调查哪个线程导致错误,我已经确定了来自负责此返回消息的Novint Falcon SDK的单行hdlUninitDevice()调用。从此调用返回失败状态不会弹出错误消息。但是,我不知道这是否是处理更大背景所必需的重要协议。听取更多建议会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

如何终止从属线程?我的第一个想法是,如果主线程退出时以非优雅方式关闭,则可能导致非零状态。

至少,如果您可以解除两个线程完成的时间,那么可能有助于确定哪个线程返回哪个状态。