调试运行于64位机上的32位w3wp进程

公司使用的服务器装的是64位的2003系统,以32位的形式运行着iis6.

借助 Windows Server 2003TM Service Pack 1,IIS 6.0 可以在 64 位 Windows 上使用 Windows-32-on-Windows-64 (WOW64) 兼容层运行 32 位 Web 应用程序。IIS 6.0 使用 WOW64 是为了运行软件开发人员和管理员所需的 32 位个人产品应用程序,包括 32 位 Internet 信息服务 (IIS) Web 应用程序。具体的可参考 Running 32-bit Applications on 64-bit Windows

从任务管理器中看到w3wp.exe进程后面加上了*32标识,

而服务器上会同时存在x64和x86目录,

如果直接运行 

ntsd  -pv -p 5756 -logo d:/out.txt -lines -c ".dump /ma d:/testlocal.dmp;q"

来生成一个dump文件,则会直接调用x64目录内的ntsd,

这时取到的相关信息是wow64兼容层的,并非用户的32位程序,

用32位的windbg打开testlocal.dmp,看到的堆栈中会包含wow64相关内容,而非用户所想看的32位程序堆栈。



正确的方法是:

      产生64位程序的dump:

x64/userdump.exe
/Windows/System32/ntsd.exe
64位WinDbg打开

      产生32位程序的dump:

x86/userdump.exe
/Windows/SysWOW64/ntsd.exe

32位WinDbg打开


推荐用debugdiag工具来抓取dump文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值