在Win7中调试应用程序崩溃后,如何调试它';发生什么事了? 我有一个Visual Basic 6应用程序,我最近已经修改了使用了我在Visual Studio 2008中编写的两个C++ DLL。该应用程序在我的电脑上运行良好,但当我们将其安装到一台测试电脑上时,它往往会在关机时崩溃——我们会看到Win 7消息“您的应用程序已失败”或其他消息
我知道Win 7存储的数据可用于分析碰撞。我已经从构建中获得了源代码和.PDB文件,所以我应该能够使用它们,但我不知道Win7将崩溃数据存储在哪里。事件查看器显示崩溃,但没有任何数据,并且目录C:\Windows\Minidump不存在在Win7中调试应用程序崩溃后,如何调试它';发生什么事了? 我有一个Visual Basic 6应用程序,我最近已经修改了使用了我在Visual Studio 2008中编写的两个C++ DLL。该应用程序在我的电脑上运行良好,但当我们将其安装到一台测试电脑上时,它往往会在关机时崩溃——我们会看到Win 7消息“您的应用程序已失败”或其他消息,c++,visual-studio,vb6,windows-7,crash,C++,Visual Studio,Vb6,Windows 7,Crash,我知道Win 7存储的数据可用于分析碰撞。我已经从构建中获得了源代码和.PDB文件,所以我应该能够使用它们,但我不知道Win7将崩溃数据存储在哪里。事件查看器显示崩溃,但没有任何数据,并且目录C:\Windows\Minidump不存在 崩溃文件放在哪里?当崩溃发生时,为什么不让您的程序将minidump保存到您想要的任何位置?我不熟悉VB,但尝试使用SetUnhandledExceptionFilter()和minidumpWriteDomainp() 为崩溃获取小型转储 得到WDK 使用W
崩溃文件放在哪里?当崩溃发生时,为什么不让您的程序将minidump保存到您想要的任何位置?我不熟悉VB,但尝试使用
SetUnhandledExceptionFilter()
和minidumpWriteDomainp()
- 为崩溃获取小型转储
- 得到WDK
- 使用Windbg打开崩溃转储
- 使用命令!分析 这个!分析扩展显示有关当前异常或错误检查的信息
- 了解有关窗口调试的更多信息
此外,Dr.Watson工具也可以为您执行此操作。您甚至可以使用carsh报告机制获取本地保存的转储文件,然后使用Visual Studio对其进行调试。Visual C++中有很多免费的资源,但VB中没有多少。 < P>微软有文档,这可以追溯到Vista Service PACK 1: 有一个注册表项,其中包含4个子值,用于控制一般崩溃:
# HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
DumpType # 1 = mini-dump, 2 = full dump, 0 = custom dump
DumpCount # Maximum number of dump files to keep before purging
DumpFolder # Full path to folder to store dump files (no trailing slash)
DumpFlags # Usually 0, flags only used if DumpType is 0
一旦这些注册表值就位,无论可能显示的对话框发生什么情况,都应立即写入崩溃文件
注意:具有可执行名称的注册表子项只能用于控制一个指定进程的崩溃行为 您的问题更适合在serverfault.com或superuser.com上提问为什么?StackOverflow用于编程问题。有什么原因不能切换到VB.net吗?这是一个依赖性问题吗?(我知道VisualStudio 2008有一个运行时,但也许你没有使用它)说,我就在那里和C++有关的问题,所以如果我找到了好的东西,我一定会发布或交叉帖子。(可能是watson+minidump+符号等,我在尝试缺乏受虐狂时忘记了)注意:如果配置为在线查找解决方案,则会在崩溃时弹出一个屏幕。如果您没有点击取消,而是等待它,则会出现一个问题,即是否可以发送。如果您在此处暂停并获取“更多信息”,则对话框的一部分将显示与崩溃相关的3个文件名。扩展名为*.mdmp的那个有你的迷你转储。(当然,对话框关闭后MS会将其删除,所以请快速抓取!)这是8年前的事了,但VB6与VB.net不同,它需要完全重写。你是说用户必须将WinDbg配置为默认调试工具(或Dr Watson)才能创建崩溃转储?Windows默认情况下不这样做吗?有两种方法:1。使用崩溃转储对问题2进行后期处理。使用windbg作为默认调试器,当您的进程崩溃时,它将使用windbg自动打开,您可以抓住罪犯您也可以通过编程创建转储…阅读此线程获取minidump以便在最终用户计算机上没有SDK的情况下崩溃无需特殊工具。如何做到这一点?您不想在用户的计算机上创建迷你转储,以便在不安装开发工具(如SDK)的情况下使用任何可执行程序吗?你会怎么做?也许是华生医生?好的,所以最终用户的机器上可能需要一些工具来完成这项工作。哪一个?应该如何设置?