调试:附加到cmd.exe中运行的控制台应用程序的进程

Chr*_*ris 26 c# debugging console-application

对于从CMD窗口运行而不是由F5启动的控制台应用程序,如何"附加到进程..."?我问的原因是因为应用程序需要命令行参数,我希望有一个真实的经验.

我甚至依附CMD.exe,但没有运气,或设置一个断点使用Console.ReadKey()也没有运气.我在这里有点不知所措.

这可能吗?

Vla*_*adV 30

你有一些选择:

  • 在Visual Studio中使用"Debug - > Command line arguments"选项;
  • 使用"调试 - >附加到进程"并找到您的进程; 它不是cmd.exe,而是具有可执行名称的进程,如"MyProject.exe".您可以使用Process Explorer或其他具有"树视图"支持的任务管理器轻松查找进程ID - 只需查找cmd.exe启动的进程.
  • 将Debugger.Break()放入代码中 - 执行此方法时,系统将启动一个对话框,要求您选择要用于调试的Visual Studio实例(您可以选择已打开项目的实例).

  • 使用 Debugger.Break() 运行 .NET 4.6.1 应用程序不会附加 VS2017。相反 Debugger.Launch() 在这里工作。 (2认同)

Kwa*_*ame 5

要从命令行调试而不是使用VS GUI迷宫:

  • 启动Visual Studio命令提示符

  • 输入vsjitdebugger /?它为您提供了如下命令示例:

c:> vsjitdebugger [AppName] [Args]:启动指定的可执行文件并附加到调试器

  • 输入tlisttasklist将为您提供附加到现有进程的PID.例:

c:>任务列表| 找/我"网络"