首页
社区
课程
招聘
[求助]如何提高程序健壮性?(发了程序,在用户机器上会出错)
发表于: 2010-3-15 18:24 5615

[求助]如何提高程序健壮性?(发了程序,在用户机器上会出错)

2010-3-15 18:24
5615
这两两天,发了程序,在我的几台测试机器上很正常。

但到了一下用户的机器上,会经典的出错窗口。

什么什么指令引用了什么内存,地址是多少。

什么软件出现问题,需要关闭?

这类问题,应该如果解决和防止呢?

我用的是VC + MFC

我一直怀疑是CString 的问题,字符串我一直习惯用这里。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 546
活跃值: (1605)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
这么笼统的说,估计没谁能帮的了你,如果程序开源就传代码上来,不开源,你就只能自己去调试了。
可能原因:1、程序对不同平台的支持;2、程序的运行时是否安装;3、程序运行环境部署是否有误;4、如果有com组件,是否注册;等等一些原因。
2010-3-15 18:42
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
SetUnhandledExceptionFilter
搞点日志
2010-3-18 11:14
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
4
加个异常处理吧
2010-3-18 11:40
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
重载 WinMain ,然后加上 _try _catch, 然后捕获生成 dump。让用户把DUMP取回来分析。
2010-3-19 11:54
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

这是可行的办法。
2010-3-19 12:08
0
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
还是应用Try catch吧!
2010-3-19 13:01
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
在你觉得可能有问题的地方加异常处理。
2010-3-19 13:20
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
非操 肯定是与内存相关的函数用错了 溢出 之类的  很容易调试
2010-3-19 14:07
0
雪    币: 97
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
经验不足,考虑不全面啦!

比如:
当你分配一块内存的时候,考虑到失败的处理么?
当你打开一个文件的时候,考虑到打不开的处理么?
当你代码中有GetMessage、PeekMessage时,考虑到消息重入么?
当你的代码中有多线程,考虑到对象的线程安全么?
当你代码中使用到锁,考虑到死锁避免么?
记住,你时刻要想着操作失败怎么办?好的程序往往出错处理占了全部代码的绝大部分!

还有就是要将测试计划做充分,当然这都是和经验水平相关的。
2010-3-19 16:00
0
雪    币: 209
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
还用问吗?加异常处理,生成dump,回来自己调试
2010-3-21 23:55
0
游客
登录 | 注册 方可回帖
返回
//