如何捕获DLL中的异常

andy_cai 2013-08-21 05:53:57
现在我需要调用一个DLL完成较复杂的事务
而这个DLL本身也是多线程的

我发现这个DLL有时会出现很严重的错误
比如非法内存读写等等
从而导致整个软件崩溃推出

我该用什么方法来捕获这些异常?
再说一下,这个DLL本身也是多线程的
...全文
1526 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-10-30
  • 打赏
  • 举报
回复
引用 16 楼 windbger 的回复:
程序异常crash,抓取dump,最灵活的工具当属微软调试工具包中的adplus。 http://support.microsoft.com/kb/286350
学习了。
BeanJoy 2013-08-23
  • 打赏
  • 举报
回复
windbger 2013-08-23
  • 打赏
  • 举报
回复
程序异常crash,抓取dump,最灵活的工具当属微软调试工具包中的adplus。 http://support.microsoft.com/kb/286350
andy_cai 2013-08-23
  • 打赏
  • 举报
回复
我还是说明一下条件限制吧,希望各位大侠耐心看一下。 我需要调用第三方DLL,该DLL会创建线程。 现在我认为该DLL存有问题,但我的开发环境没法run这个DLL(因为和设备相关) 所以只能在发布环境中捕获错误信息。
andy_cai 2013-08-23
  • 打赏
  • 举报
回复
引用 12 楼 tiger9991 的回复:
[quote=引用 9 楼 andy_cai 的回复:] [quote=引用 5 楼 tiger9991 的回复:] SetUnhandledExceptionFilter 这个方法不错的,我也用这个 楼主去搜索输出dump文件。
怎么这个方法在release下不起作用?[/quote] 你如果没源码就没用了,另外最好用高版本的VS,我测试在VS2005经常不起作用,但是VS2010运行良好[/quote] 好吧,我的确用的是VS2005。 由于一些原因,目前该项目还不能使用VS2010。
andy_cai 2013-08-23
  • 打赏
  • 举报
回复
引用 10 楼 zhao4zhong1 的回复:
开始、运行、drwtsn32
华生医生记录的信息不够详细
看不见的裂痕 2013-08-23
  • 打赏
  • 举报
回复
引用 9 楼 andy_cai 的回复:
[quote=引用 5 楼 tiger9991 的回复:] SetUnhandledExceptionFilter 这个方法不错的,我也用这个 楼主去搜索输出dump文件。
怎么这个方法在release下不起作用?[/quote] 你如果没源码就没用了,另外最好用高版本的VS,我测试在VS2005经常不起作用,但是VS2010运行良好
andy_cai 2013-08-23
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
我需要在发布环境下使用 所以你说的这个方式不行 刚才试了一下SetUnhandledExceptionFilter 在release下也没用起来 我不知道是不是什么地方弄错了
赵4老师 2013-08-23
  • 打赏
  • 举报
回复
开始、运行、drwtsn32
andy_cai 2013-08-23
  • 打赏
  • 举报
回复
引用 5 楼 tiger9991 的回复:
SetUnhandledExceptionFilter 这个方法不错的,我也用这个 楼主去搜索输出dump文件。
怎么这个方法在release下不起作用?
赵4老师 2013-08-23
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
andy_cai 2013-08-23
  • 打赏
  • 举报
回复
引用 6 楼 BeanJoy 的回复:
这篇文章是否有用使用SetUnhandledExceptionFilter转储程序崩溃时内存DMP
肯定有用,谢了。 等我这边有了实践结果,再回复结贴。 其他人如果还有另外的方法,我会追加分数的。
看不见的裂痕 2013-08-22
  • 打赏
  • 举报
回复
SetUnhandledExceptionFilter 这个方法不错的,我也用这个 楼主去搜索输出dump文件。
andy_cai 2013-08-22
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
本质上还是应该解决掉DLL中的异常问题
你说的是理,可这部分内容不受我控制。 并且我不是很想为这个DLL的使用创建单独进程 因为设计到一些较为复杂的状态更新
oyljerry 2013-08-21
  • 打赏
  • 举报
回复
本质上还是应该解决掉DLL中的异常问题
oyljerry 2013-08-21
  • 打赏
  • 举报
回复
SetUnhandledExceptionFilter等,然后重启
  • 打赏
  • 举报
回复
__try dll里面创建线程的话 ,就没办法了,只能改dll的代码了
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

15,465

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧