gpt4 book ai didi

.net - 调试立即崩溃的 .NET EXE 文件

转载 作者:行者123 更新时间:2023-12-04 16:23:52 24 4
gpt4 key购买 nike

我正在处理一个运行时立即崩溃的托管 EXE 文件。通常我希望有一个对话框允许启动调试器的选项,但在这种情况下没有这样的运气。此外,程序崩溃得太快,我无法在 Visual Studio 中使用附加处理。

解决办法是什么?

最佳答案

如果您有 WinDbg安装好后,使用菜单File→Open Executable直接在调试器下打开应用程序,立即自动中断。

然后就可以使用Debug下的命令(即Go)正常执行和调试了。同时加载 SOS Extensions .不如 Visual Studio 好,但如果您只有 EXE(希望还有 PDB,尽管这是可选的)并且没有源,则很有用。

示例:这是我的源代码,我们假设它不可用:

    static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
int x = 10 - 10;
int i = 2000/x;

Application.Run(new Form1());
}

这会立即崩溃,您没有机会及时附加调试器。这是点击“运行”后的 WinDbg 输出:

删除了无效的 ImageShack 链接 - 我的手绘圈

加载 SOS.dll 后,可以使用 !DumpStack 查看异常在哪里抛出:

删除了无效的 ImageShack 链接 - 没有手绘圆圈,抱歉!

请注意,JIT 或编译器优化可能会导致方法被内联,这可能会使 StackTrace 不是 100% 可靠,但为了快速概览它可以工作。

WinDbg 有点神秘,但是一旦你完成了一些基础知识,它就很棒,至少有助于找到问题的根源。

关于.net - 调试立即崩溃的 .NET EXE 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com