F fhuibo Unregistered / Unconfirmed GUEST, unregistred user! 2010-01-27 #1 最近写一个类似银行取款的软件,其中用到读卡器和密码键盘, 程序在运行的时候,偶尔会出现“当点击某个按钮时,整个程序就退出了”,也没法跟踪,只是偶尔会有一次退出。请大哥们帮忙!有遇到过吗,是什么原因?
H haidy Unregistered / Unconfirmed GUEST, unregistred user! 2010-01-27 #3 做个日志,把进入每个模块(函数)的时间和顺序都记录下来,并保存到文件中,当程序意外退出后,察看该纪录最后是进入哪个模块,这样就可以知道哪里的问题了。
S sdqdzt Unregistered / Unconfirmed GUEST, unregistred user! 2010-01-29 #5 创建一个全局的aStringList:TStringLIst,然后再一个流程中能调用到的函数过程的入口和出口都aStringList.add(FormatdateTime('函数名称入口'+'yyyy-mm-ss hh:mm:ss:zzz',now));aStringList.add(FormatdateTime('函数名称出口'+'yyyy-mm-ss hh:mm:ss:zzz',now));最后在真个一个流程结束后的地方,比如所有查询完毕,比如程序退出地方等aStringList..SaveToFile('log.txt');这样每次覆盖这个日志文件,当某次退出出错时,就能定位到那个函数出错了。如果退出时保存不了,就在每个函数退出时保存日志,用追加模式。这样出错后,打开日志最后一个函数就是出错地方。
创建一个全局的aStringList:TStringLIst,然后再一个流程中能调用到的函数过程的入口和出口都aStringList.add(FormatdateTime('函数名称入口'+'yyyy-mm-ss hh:mm:ss:zzz',now));aStringList.add(FormatdateTime('函数名称出口'+'yyyy-mm-ss hh:mm:ss:zzz',now));最后在真个一个流程结束后的地方,比如所有查询完毕,比如程序退出地方等aStringList..SaveToFile('log.txt');这样每次覆盖这个日志文件,当某次退出出错时,就能定位到那个函数出错了。如果退出时保存不了,就在每个函数退出时保存日志,用追加模式。这样出错后,打开日志最后一个函数就是出错地方。
H hs-kill Unregistered / Unconfirmed GUEST, unregistred user! 2010-02-06 #7 大概是哪个模块应该知道吧,一般这种情况大部分是对内存操作错误造成的,比如复制字符申请内存之类的..