在WinDbg中打破特定异常的最快方法? .net 4.0应用程式 [英] Fastest way to break in WinDbg for specific exception? .net 4.0 app

查看:140
本文介绍了在WinDbg中打破特定异常的最快方法? .net 4.0应用程式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Folks,

使用WinDbg调试.net 4.0应用程序(我是WinDbg的初学者)。我尝试打破堆栈溢出时
(NTSTATUS)0xc00000fd - 无法创建堆栈的新保护页面

Debugging a .net 4.0 app using WinDbg (I'm a beginner to WinDbg). I'm trying to break when I hit a stack overflow: (NTSTATUS) 0xc00000fd – A new guard page for the stack cannot be created

不幸的是,这个溢出发生在长时间运行的过程中大约2个小时,而日志告诉我,并不总是发生在同一时间/地点。如果我附加到调试器中的过程,程序运行速度非常慢 - 可能需要几天时间才能打错误!有没有办法加快应用程序/ WinDbg通过告诉WinDbg只能打破这个特定的错误?

Unfortunately, this overflow happens about 2-hours into a long-running process and logs tells me that it doesn't always happen at the same time/place. If I attach to the process in the debugger, the program runs terribly slow...it might take a few days to hit the bug! Is there a way to speed up the app/WinDbg by telling WinDbg to ONLY break for this particular error?

推荐答案

你可以指示ADPLUS在异常发生时创建转储过程。约翰·罗宾斯有关于此主题的好文章。然后,您可以使用WinDbg来调试转储文件。

You can instruct ADPLus to create dumps of the process when exceptions occur. John Robbins has a good article on the subject. You can then use WinDbg to debug the dump file(s).

请注意,原来的adplus.vbs已被adplus.exe替代,这应该是提供相同的功能。根据我的经验,新的实现有一些问题,因此您可能需要使用旧的脚本,它仍然可以作为adplus_old.vbs使用。

Be aware, that the original adplus.vbs has been replaced by adplus.exe, which is supposed to provide the same functionality. In my experience there are a few problems with the new implementation, so you may need to use the old script, which is still available as adplus_old.vbs.

这篇关于在WinDbg中打破特定异常的最快方法? .net 4.0应用程式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆