《软件问题分析报告.pdf》由会员分享,可在线阅读,更多相关《软件问题分析报告.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档交流问题分析报告修改时间修改人修改内容版本备注2017 年 1 月 17 日赵建新建V0.1 草稿问题一2017 年 1 月 19 日赵建增加增加问题二、 问题三精品文档交流问题一:总台业务软件启动时出现kernelBase.dll 错误问题1、抓图2、测试条件、方法及结果1)测试一 (win10 企业环境测试)条件:取消软件兼容模式方法:经过多次运行关闭程序结果: 4 次中就会出现一次该问题2)测试二 (win10 企业环境测试)条件:启动软件兼容模式方法:经过多次运行关闭程序结果:运行十几次也不见得会出现一次该问题3)测试三 (win10 企业环境测试)条件:关闭软件兼容模式且源码
2、的工程文件中注释掉剪贴板代码方法:经过多次运行关闭程序结果:没有发现一次该问题。 另外发现软件的启动前不用等待操作系统兼容某个操作系统所浪费的时间。4)测试四( WINDOW Server 2008 R2 企业版)精品文档交流条件:关闭兼容模式方法:多次运行结果:一切正常5)测试五( WINDOW Server 2008 R2 企业版)条件:打开兼容模式( win95,win98)方法:运行一次结果:每运行一次都会提示没有版本信息等提示。6)测试六( WINDOW Server 2008 R2 企业版)条件:打开兼容模式( NT4.0 sp5及高版本)方法:多次运行结果:正常7)测试七( WI
3、NDOW Server 2008 R2 企业版)条件:打开、关闭兼容模式方法:同时打开软件两次结 果 : 不 管 是 打 开 或 是 关 闭 模 式 , 必 定 会 引 起 剪 贴 板 错 误(kernelBase.dll问题)8)测试八( WIN10 企业版)条件:打开、关闭兼容模式方法:同时打开软件两次结 果 : 不 管 是 打 开 或 是 关 闭 模 式 , 必 定 会 引 起 剪 贴 板 错 误(kernelBase.dll问题)3、问题根源1)问题出现在工程文件中使用的剪贴板功能处2)兼容性变化的原因1文件兼容性的存储方式是以文字名为唯一的,所以在该文件改名后兼容性就会被重置为取消状
4、态。2生成是设置为了兼容模式,发给客户就没有兼容属性,是因为客户电脑上从未设置过该属性, 而文件被 COPY 过来后会重置,默认为取消兼容模式。精品文档交流3)不管是否开启兼容模式,只要在很短的时间打开两次程序,则会报剪贴板错误继而引起 kernelBase.dll问题。4、解决方法1)在实施工程师将程序给客户或部署到主机上时,明文规定必须将程序设置为兼容模式或告诉客户启动兼容模式。2)可以去掉工程中的剪贴板功能,这样可以同时启动两个程序进程。3)在工程文件中引用互斥变量,同一时间只能有开一个程序进程运行。5、建议1)由于未经过大量的非兼容测试,担心其它功能受到影响,所以建议使用第一种解决方法
5、(启动兼容模式)2)源码调试时该问题是易出现的,建议开发工程师在编译生成后取消掉兼容模式,在此模式下编译生成后用生成后的执行程序调试。3)源码调试时去掉被忽略的EXCEPTION 选项,这样才可以尽可能多的抓到异常问题。建议采用第 3 个解决办法:在工程文件中引用互斥变量,同一时间只能有开一个程序进程运行。问题二: StandardDaemon200.dll 动态库有内存溢出的问题(已与李明彩沟通,待其解决)1、抓图精品文档交流2、问题分析原 来 的 代 码 会 多 次 调 用StandardDaemon_Init , 但 没 有StandardDaemon_CleanUp 释放掉全局变量 a
6、qPeis ,所以会产生内存泄露。3、问题根源在总台业务程序中GetFunctionValFromHerSetting函数每次调用都会执行StandardDaemon_Ini调用,但没有调用StandardDaemon_CleanUp 释放。4、解决方法方法 1:全局变量 aqPeis在创建前,可以先用freeandnil 先释放。方法 2:在每次调用 StandardDaemon_Init时,最后一定要用StandardDaemon_CleanUp 释放。5、建议两种方法都可以根除。问题三:用户登录时多次执行select * from HerPermission 1、抓图2、问题分析在 Re
7、adInPermsOfUser过程中会多次调用AddFatherIdsOf 这个功能,AddFatherIdsOf功能会调用 RefreshDataset(dataset); 来重新查表。3、问题根源RefreshDataset(dataset) 是刷新记录集的功能,也是重新打开表的功能,所以 调 用 多 少 次RefreshDataset 就 会 查 询 多 少 次 表 , 这 个 参 数 根 据ListBoxPerms.Items.Count来决定查多少次表。4、解决方法建立全局表,只第一次加载,后续查缓存中的记录表。5、建议精品文档交流多次查表会严重影响程序执行效率,建议使用上面的解决方法解决。问题四赵建2017 年 1 月 17 日【下载本文档,可以自由复制内容或自由编辑修改内容,更多精彩文章,期待你的好评和关注,我将一如既往为您服务】