我可以配置Visual Studio在应用崩溃时创建内存转储吗?

1l5u6lss  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个C#/WPF(.net Framework,不是核心)桌面应用程序,它随机崩溃-没有警告或任何Windows通知。在Windows事件查看器中,崩溃被记录为异常代码0xc 000005,这显然表明发生了非托管内存访问冲突。
这是几周前开始的,当时正在实现一个新的相当复杂的WPF控件。除此之外,应用程序还有其他带有非托管代码的组件--但据我所知,这些组件在这几周内并没有改变。我正在开发的控件可以使用多个线程和VisualTree修改等。但是它是纯粹的WPF/.NET托管代码。
此外:这只会在我的机器上发生,如果在Visual Studio中调试。不在其他机器上;如果在调试或发布模式下单独运行应用程序,则不会;如果我附加了另一个调试器(例如ProcDump)。
Visual Studio似乎根本没有受到影响,它只是停止调试,但它肯定与我的应用崩溃有关。
我找到了这个https://learn.microsoft.com/en-us/visualstudio/debugger/using-dump-files?view=vs-2022,但这对我没有帮助。

ahy6op9u

ahy6op9u1#

按照以下步骤操作:
1.在Visual Studio中打开项目/解决方案。
1.转到“调试”菜单并选择“选项”。
1.在“选项”对话框中,导航到“调试”>“转储写入”。
1.选中“在应用程序崩溃时创建转储文件”选项。
1.指定转储文件的路径和名称。您可以使用浏览按钮(...)选择位置。

  • 选择要生成的转储文件类型。可用选项包括:
  • “迷你转储”:这是一个小型转储文件,其中包含有关崩溃的基本信息。
  • “完全转储”:这是一个较大的转储文件,包含更详细的信息,但可能需要更长的时间来生成。

建议从一个迷你转储文件开始,除非您特别需要完整转储提供的附加信息。

  • 单击“确定”保存更改并关闭“选项”对话框。
  • 在调试模式下生成并运行应用程序。
  • 当应用程序崩溃时,VisualStudio将在指定位置生成内存转储文件。转储文件将包含有关崩溃的信息,这对于调试目的非常有用。

请记住使用调试工具(如Visual Studio的调试器)或其他专为分析内存转储而设计的专用工具来检查生成的转储文件。
https://learn.microsoft.com/en-us/visualstudio/debugger/debugger-feature-tour?view=vs-2019

  • 尝试配置不同的体系结构类型并查看编译器给您的任何警告。确保你克服了警告。
  • Visual Studio 2019及更高版本。

相关问题