回答
更新:在这一点上,我会建议使用procdump来代替,因为它支持许多额外的选项,以捕获转储。
对于故障转储您最好的选择可能是Debugging Tools for Windows adplus。它会自动连接cdb调试器并在发生未处理的异常时创建转储文件。如果需要,您甚至可以指示它为所有首次机会异常创建转储。语法是直线前进,因此采取的过程调用的崩溃转储app.exe
你会做这样的事情
adplus -crash -pn app.exe -o <output dir>
一旦你的转储,您可以加载到WinDbg中,加载SOS,并使用在异常期待!threads
和!printexception
命令。
如果您有兴趣,可以在第9频道上观看几个带有调试演示的视频。其中一个演示是一个崩溃转储。
http://channel9.msdn.com/posts/MDCC-TechTalk-Advanced-NET-Debugging-part-1
http://channel9.msdn.com/posts/MDCC-TechTalk-Advanced-NET-Debugging-part-2
(全面披露:我在视频演示,所以原谅无耻的插头)。
我安装denbugging工具窗口,并使用ADPlus的与-hang设置
挂起转储会给你一个过程的快照。这在许多情况下可能非常有用,但它通常不会帮助您排除故障。为此,崩溃转储更有用。 – 2010-12-03 21:36:50
可以使用Process Dumper为任意用户模式进程做到这一点。
的用户模式进程自卸车 (用户转储)转储任何正在运行的Win32 进程的内存图像上的苍蝇, 不必附加调试器,或 终止目标进程。
我认为像这样生成的转储的可调试性仅限于WinDbg。您将无法获得完整的Visual Studio易用性。有关于从托管应用程序转储调试转储的信息here。
- 1. 如何延迟运行程序直到磁盘活动消退
- 2. 如何获取数据到正在运行的ruby进程?
- 3. 发送键盘输入到正在运行的进程linux
- 4. 如何在Android进程中获取正在运行的线程?
- 5. .NET设置变量以运行进程(如果进程正在运行)
- 6. 如何在运行时将图像保存到磁盘
- 7. 如何捕获从init.d运行的Linux守护进程的pid
- 8. 修改并运行现有.NET程序集而不保存到磁盘
- 9. 如何捕获(拦截)并隐藏UserNotificationCenter的消息(“磁盘未正确弹出”)?
- 10. 如何获得正在运行的进程的mach-o uuid?
- 11. 如何在磁盘
- 12. 如何以编程方式运行格式化磁盘?
- 13. 获取正在运行的进程给定的进程句柄
- 14. 如何在mac上找到正在运行的java进程的进程ID?
- 15. 将磁盘附加到正在运行的实例(在控制台中)
- 16. 如何捕获已经有它重定向到/ dev正在运行的进程的标准输出/空
- 17. 如何在指定的磁盘上运行容器?
- 18. 如何找到正在运行的进程的内存泄漏?
- 19. 如何捕获视频流显示并保存到磁盘中的Flex Builder 3?
- 20. 防止.net程序写入磁盘
- 21. 如何将erlang dbg附加到正在运行的进程?
- 22. 如何找到正在运行的进程
- 23. 如何正确处理通过虚拟磁盘,磁盘和本地文件副本进行灾难恢复
- 24. 如何将ParseObject保存到.NET中的磁盘
- 25. 运行在.NET和C++中的进程
- 26. 如何在GridGain中设置磁盘备份以进行恢复
- 27. 如何获得磁盘的身份?
- 28. 如何捕获正在运行的Web应用程序的intellitrace事件日志?
- 29. 如何将.NET .config文件应用于正在运行的进程?
- 30. Foxpro访问正在运行进程的窗口以及如何结束正在运行的进程
托管应用程序的Minidump调试会吸引落基山巨石的大小。你必须绝望。附加一个托管调试器是非常优越的。但试试吧,google sos.dll – 2010-12-03 21:45:47