使用windbg调试iis应用程序池崩溃的asp.net 2.0 bug.
来源:互联网 发布:人工智能股票龙头代码 编辑:程序博客网 时间:2024/05/10 00:03
新上线的asp.net 2.0 项目,不定时的报告以下错误:
Faulting application w3wp.exe, version 6.0.3790.3959, stamp 45d6968e, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51ee2, debug? 0, fault address 0x0000bef7
并使iis应用程序池崩溃,在windows的事件日志中,有上述错误报告。
一、从微软官网下载WinDbg,我下载的版本是:dbg_x86_6.11.1.404.msi,请注意其中的x86或x64的描述。
二、配置windbg
打开软件,选择File->Symbol File Path,设置路径地址为:srv*c:\symbols*http://msdl.microsoft.com/download/symbols
三、关闭windbg窗口,执行cmd,进入windbg的安装目录,使用adplus.vbs设置iis应用程序池的监控。
adplus -crash -p 4456 -fullonfirst -o g:\debug -quiet
参数说明:-crash,告诉adplus,是调试崩溃。
-p 4456,指定iis应用程序池的windows进程号,如果不清楚所调试应用程序池的进程号,可以在cmd下使用iisapp查看。
-fullonfirst,第一次崩溃的时候,记录详细日志。
-o g:\debug,设置日志输出目录
-quiet,静默模式
关于adplus的更多参数,可以查阅csdn的相关资料。
四、根据以上图片的显示,adplus已经成功运行,可以看到,其实adplus调用最终执行的是另外一个程序cdb.exe,adplus只是一个vbs脚本。然后等待应用程序池崩溃吧,只需要在第一次崩溃结束后,使用windbg分析由adplus(cdb.exe)产生的日志即可。
五、分析日志
分析日志前,请把C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\加入到环境变量的path中。也可以把这个目录下的sos.dll复制到windbg的安装目录。
使用windbg打开g:\debug目录下的dmp文件,通常崩溃记录在所有日志文件中,较靠后的文件。
打开dmp文件后,执行
kb
.load sos
!clrstack
通常的asp.net异常,就能在其中找出问题所在了,我所碰到的此bug,是因为一个小递归程序导致的。
以上文章来自:32yx.com,文章地址:http://www.32yx.com/?p=341 联系QQ:301109640,转帖请注明出处。
- 使用windbg调试iis应用程序池崩溃的asp.net 2.0 bug.
- 使用windbg調試iis應用程序池崩溃的asp.net 2.0 bug.
- 使用Windbg调试.Net应用程序
- windbg调试ASP.NET
- IIS+ASP.NET+C++一次访问越界导致的崩溃调试
- IIS应用程序池频繁崩溃的问题
- 生成程序崩溃的dump文件,使用windbg调试
- 生成程序崩溃的dump文件,使用windbg调试
- IIS 7.0 的 ASP.NET 应用程序生命周期
- 使用WinDbg调试应用程序dump
- 如何设置使 IIS 应用程序池使用 ASP.Net 3.5 而不是 2.0
- 使用Windbg 调试.Net程序
- 使用Windbg 调试.Net程序
- windbg 调试崩溃实例
- windbg 调试崩溃实例
- windbg 调试崩溃实例
- WinDbg调试 崩溃程序
- WinDBG调试asp的Dump
- 管理专业学生必懂的部分知识
- android全屏,强制竖屏,强制横屏
- LN项目总结——工程中的鸡吃石子理论
- GDI 双缓存
- fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409
- 使用windbg调试iis应用程序池崩溃的asp.net 2.0 bug.
- Linux下用SCP无需输入密码传输文件
- 随机产生100个英文字母,并统计原音字母的个数
- 广州话常用字
- 一个打通jni,java framework,application三层的练习
- ASP.Net 中的DataTime 获取当前的时间
- Chrome对第三方安全硬件Key支持注意问题
- eclipse 使用技巧
- eclipse 插件开发——运行插件报错 java.lang.NoClassDefFoundError的解决办法