多线程程序 如何处理该异常“未知的软件异常0xc0000417 位置0x7858ccb5”

时间:2021-11-17 10:49:05

小弟最近用vs2008 mfc 编写了一个工控应用的程序

大概启用了四到五个工作线程再加一个界面,系统在运行的时候,有时会发生 

“应用程序异常 未知的软件异常0xc0000417 位置0x7858ccb5”但此时所有线程都在正常作业,界面也能能够响应,就是不能点那个错误提示框的确定或取消按钮,一点程序就自动退出了。

系统是基本就是全天运行,该异常出现频率不高,有时候一天一两次,有的时候几天也发生不了一次。

痛苦了好多天,网上也有人问 ”未知的软件异常0xc0000417“ 但位置不一样,不知如何如何定位该异常的真正原因。

各位大侠,遇到这种异常,如何找出原因?位置0x7858ccb5是什么意思?

多谢

7 个解决方案

#1


查看自己的多线程之间是否用到了相同的资源,但是没有同步
这样可能会出错

#2


多个线程确有共享资源,数据共享,共享硬件,回头我再仔细查一下
对于共享硬件用了关键代码段,对于数据就没有用了,设计为一个读,一个写
我想知道:

一 。0xc0000147是什么类型的错误?
二  如何根据位置0x7858ccb5 找到对应的调用函数


多谢

#3


上网搜索根据崩溃地址查找出错代码。。。

#4


\\VC\PlatformSDK\include\ntstatus.h
:

0xc0000417 STATUS_INVALID_CRUNTIME_PARAMETER

这个应该是因为不同线程之间传递的参数用来调用函数时候,没有确定那参数好使。

#5


根据各位的提醒感觉有了一些思路,

再问一下:为什么发生这种错误的时候,各路线程仍然工作的好好的呢?

#6


生成Map文件,根据0xc0000147找到导致程序崩溃的对应的行和函数。一个线程崩溃了 不影响其他线程的。

#7


0xc0000147是错误类型,位置倒是有0x7858ccb5,远远超过了程序的地址空间,所以没办法根据崩溃地址查找出错代码

我是说所有我创建的线程都在正常工作,这些线程似乎没有崩溃。



引用 6 楼 uucall007 的回复:
生成Map文件,根据0xc0000147找到导致程序崩溃的对应的行和函数。一个线程崩溃了 不影响其他线程的。

#1


查看自己的多线程之间是否用到了相同的资源,但是没有同步
这样可能会出错

#2


多个线程确有共享资源,数据共享,共享硬件,回头我再仔细查一下
对于共享硬件用了关键代码段,对于数据就没有用了,设计为一个读,一个写
我想知道:

一 。0xc0000147是什么类型的错误?
二  如何根据位置0x7858ccb5 找到对应的调用函数


多谢

#3


上网搜索根据崩溃地址查找出错代码。。。

#4


\\VC\PlatformSDK\include\ntstatus.h
:

0xc0000417 STATUS_INVALID_CRUNTIME_PARAMETER

这个应该是因为不同线程之间传递的参数用来调用函数时候,没有确定那参数好使。

#5


根据各位的提醒感觉有了一些思路,

再问一下:为什么发生这种错误的时候,各路线程仍然工作的好好的呢?

#6


生成Map文件,根据0xc0000147找到导致程序崩溃的对应的行和函数。一个线程崩溃了 不影响其他线程的。

#7


0xc0000147是错误类型,位置倒是有0x7858ccb5,远远超过了程序的地址空间,所以没办法根据崩溃地址查找出错代码

我是说所有我创建的线程都在正常工作,这些线程似乎没有崩溃。



引用 6 楼 uucall007 的回复:
生成Map文件,根据0xc0000147找到导致程序崩溃的对应的行和函数。一个线程崩溃了 不影响其他线程的。