调试在启动后终止的进程

时间:2013-09-23 06:04:27

标签: windows visual-studio debugging

我需要调试一个在启动后立即终止的进程(从外部exe开始),所以我没有时间附加。我该如何调试呢?

UPD我没有该外部exe的源代码;我可以反编译它,但是不可能将它编译回来

4 个答案:

答案 0 :(得分:3)

您需要在挂起状态下启动调试过程。 Visual Studio能够做到这一点,只需调用这样的调试器:

devenv /debugexe yourprog.exe <arguments>

该过程将暂停,因此您可以在崩溃前迭代第一条指令。

详见答案here

答案 1 :(得分:1)

您只需要打开Visual Studio,转到File -> Open -> Project / Solution  并选择exe。

按F5键,您将在“输出”窗口中看到异常。如果您转到Debug -> Exceptions窗口并选择所有内容,您将在关闭应用程序之前看到第一次机会异常。

请注意,完全不需要源代码。

希望它有所帮助。

答案 2 :(得分:0)

您需要使用调试器启动它。这将启动已附加调试器的程序。

如果您无法使用Visual Studio执行此操作,则可以使用Windows调试工具,Windows Driver Kit的一部分。请注意,链接工具包适用于Windows 8.1,如果您不在Windows 8上,则可能需要查找旧版本。

答案 3 :(得分:-1)

您可以通过放置一些代码来启用调试模式运行时。 写一个方法如下:

[Conditional("DEBUG_SERVICE")]
private static void DebugMode()
{
    Debugger.Break();
}

并在您想要开始调试的地方调用此方法,例如在OnStart事件中。 你必须使用调试模式构建代码。不要忘记在调试后删除这段代码并想要发布。