【问题标题】:How to debug .NET console application from Visual Studio 2013如何从 Visual Studio 2013 调试 .NET 控制台应用程序
【发布时间】:2015-05-11 15:47:36
【问题描述】:

我用 c# 创建了一个 .NET 4.5 控制台应用程序(一个 .exe 文件),它处理各种文件中的一些数据。整个过程不到一秒钟。我想在 Visual Studio 2013 调试器中使用特定输入文件(文件名作为命令行参数传递)单步执行 .exe 的测试版本有问题。我无法执行“附加到进程...”,因为该进程完成得太快而无法附加到它。在这种情况下如何调试。

请注意,我来自 python 世界,我正在尝试做的 python 等价物是python -m pdb pdb_script.py

感谢您的建议!

【问题讨论】:

  • 您是否尝试过在代码中添加断点?单击要暂停的代码左侧的边距以添加断点。
  • 为什么需要附加到正在运行的进程?假设您仍然有代码文件和项目、解决方案文件等,只需从调试器本地运行它。
  • 是的,我可以添加断点就好了。我遇到的问题是我想运行这些步骤:1.以某种方式为.exe设置调试(这是我不知道该怎么做的部分;2.从cmd窗口执行myprog.exe file1 file2 ; 3. 打开调试器并单步执行代码。我知道我在这里遗漏了一些东西,但我不知道它是什么!

标签: c# .net visual-studio debugging


【解决方案1】:

右键单击您的项目并转到“属性”。

然后选择左侧的“调试”选项卡。

有一个框,您可以在其中输入所需的命令行参数,以便在调试模式下运行时使用。

编辑:如果您询问如何启动调试器,则在代码中添加一些断点,然后右键单击解决方案中的项目并选择“调试”>“启动新实例”。

或者您可以右键单击并选择“设置为启动项目”,然后您可以使用 F5 或 UI 顶部的“开始”按钮开始调试。

【讨论】:

  • 据我所知,OP 询问如何附加到进程而不是如何为其添加参数。
  • @IgnacioSolerGarcia 重新阅读这个问题,你可能是对的。问题出在哪里并不完全清楚。我将编辑更多建议。
【解决方案2】:

在您的代码中添加以下行:

System.Diagnostics.Debugger.Break();

这将允许您在应用程序结束之前对其进行调试。

【讨论】:

  • 虽然其他答案没有错,但这是我想到的与 python python -m pdb pdb_script.py 成语匹配的用例。谢谢!
【解决方案3】:

在 Visual Studio 中,您可以在启动调试会话之前添加命令行参数,方法是右键单击您的项目,选择属性,然后转到调试选项卡。

然后你可以在 Visual Studio 中用 f5 启动它

如果这太麻烦了(因为你要改变很多参数),你可以做一些事情,比如在你的程序开始时添加一个Console.ReadLine,这会给你一个改变附加调试器。您甚至可以有一个额外的命令行参数进行调试,如果您传递该参数,它只会暂停以便您附加调试器。

【讨论】:

  • 据我所知,OP 询问如何附加到进程而不是如何为其添加参数。
  • @IgnacioSolerGarcia:他们在询问如何调试需要向其传递参数的控制台应用程序。如果您在属性中传递参数,那么您可以像使用 f5 的任何其他进程一样调试它
猜你喜欢
  • 2019-11-29
  • 2016-04-11
  • 1970-01-01
  • 2012-09-18
  • 2018-06-19
  • 2014-11-05
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多