【问题标题】:can we attach a process to VS programatically as soon as the process is created? [duplicate]我们可以在创建进程后立即以编程方式将进程附加到 VS 吗? [复制]
【发布时间】:2012-11-28 18:32:54
【问题描述】:

可能重复:
How to set breakpoint at the very beginning of program execution

我有一个 C 语言应用程序。我正在使用 VS 2008 进行开发。我需要通过将进程附加到 Visual Studio 来调试 C 代码。在正常情况下,可以简单地附加该过程,但这里有点棘手。

以下是场景:

问题是应用程序一运行就会给出一些不需要的消息,即创建了 PROCESS。获取 PID 并将其附加到 VS 的时间太短。

我现在的问题是:

我们可以做点什么(编写一些程序或有一些解决方法)以便我们可以在创建进程后立即附加它吗?

提前致谢。

问候, 阿布舍克·阿南德

【问题讨论】:

  • 这与“如何在程序执行的最开始设置断点”不同。这个问题是如何在创建进程中设置断点,而这只是一个基本的“如何在目标应用程序启动时自动附加调试器?”不同之处在于用户问的是一个基本的正常调试问题,并且它有几个答案。此用户在所有标准 dll 加载之前没有指定。另一个问题是调试的特殊情况,它有一个特定的答案。

标签: c debugging visual-studio-2008 process pid


【解决方案1】:

最简单的方法是在源代码的开头设置一个断点,然后使用 Visual Studio 开始调试应用程序。您可以使用 F5 或 Debug|Start Debugging 菜单项来执行此操作。

如果您必须等待另一个进程来启动您的错误程序,请下载并安装“Windows 调试工具”(如果您还没有的话)。可以在这里找到:http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx

它是 Microsoft 提供的免费调试工具,用于在所有受支持的 Windows 操作系统上进行调试。

它包括一个名为 GFlags 的实用程序。使用 GFlags 设置目标程序的自动调试选项。这是将系统设置为启动调试器的最简单方法,该调试器将在目标应用程序启动时自动启动。我更喜欢使用 WinDbg.exe(它包含在工具包中),但如果您愿意,可以将 Visual Studio 作为调试器启动。

上面的链接包括调试帮助的链接。

【讨论】:

    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多