Windbg分析程序崩溃实践案例

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

Windbg分析程序崩溃实践案例

【问题描述】

结合实践案例,介绍利用Windbg 分析应用程序崩溃的常用命令及主要步骤。


【解决方案】

  1. 下载安装windbg及如何抓取dump文件不在本文介绍,可参考https://vip.kingdee.com/article/268420152696221184?productLineId=1。

  2. 设置Symbol路径,在菜单项File下点击Symbol File Path选项即可设置。




3.选择需要分析dump文件,在菜单项File下点击Open Crash Dump选项选择要分析的dump文件。


4.利用常用命令分析dump文件

1)加载常用扩展组件 sos,sosex

2)!pe 打印出发生在所有线程上的最后的异常,可以看出是堆栈溢出问题

3)~*e!clrstack 查看所有线程调用堆栈



分析结论:页面执行反审核操作,调用 

Kingdee.K3.SCM.App.Pur.ServicePlugIn.Instock.AutoDeleteInStockWhenPayableUnAudit.EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs)方法,该方法又调用  

    -- Kingdee.K3.SCM.App.Pur.ServicePlugIn.Instock.AutoDeleteInStockWhenPayableUnAudit.DeleteInStock(Kingdee.BOS.Orm.DataEntity.DynamicObjectCollection, System.Collections.Generic.List`1)方法;该方法又调用 

         --Kingdee.K3.SCM.App.Pur.ServicePlugIn.Instock.AutoDeleteOutStockWhenInStockUnAudit.BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs) 方法,该方法又调用 

               --Kingdee.K3.SCM.App.Pur.ServicePlugIn.Instock.AutoDeleteOutStockWhenInStockUnAudit.DeleteOutStock(Kingdee.BOS.Orm.DataEntity.DynamicObjectCollection, System.Collections.Generic.List`1)方法,该方法又调用

                        --Kingdee.K3.SCM.App.Pur.ServicePlugIn.Instock.AutoDeleteInStockWhenPayableUnAudit.EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs)方法,该方法又调用 

                           --Kingdee.K3.SCM.App.Pur.ServicePlugIn.Instock.AutoDeleteInStockWhenPayableUnAudit.DeleteInStock(Kingdee.BOS.Orm.DataEntity.DynamicObjectCollection, System.Collections.Generic.List`1)方法。

 形成死循相互调用,导致引发栈溢出问题。




Windbg分析程序崩溃实践案例

【问题描述】结合实践案例,介绍利用Windbg 分析应用程序崩溃的常用命令及主要步骤。【解决方案】下载安装windbg及如何抓取dump文件不在本...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息