相关疑难解决方法(0)

将C#中的调试器附加到另一个进程

我希望能够自动附加一个调试器,例如: System.Diagnostics.Debugger.Launch(),除了当前进程到另一个命名进程.我有一个进程名称和PID来识别其他进程.

这可能吗?

c# debugging

18
推荐指数
3
解决办法
2万
查看次数

使用EnvDTE.ExecuteCommand以编程方式开始调试特定项目

我有一个包含多个启动项目的解决方案,我试图在每晚自动重新启动其中一个,同时保持新进程连接到同一个调试器.

我能够重新启动进程(使用Process.Start)并将当前调试器附加到它,但到目前为止它还不是很可靠,并且按照设计,单击"停止"按钮只会从进程中分离而不是终止它.

我知道Visual Studio团队已经发布了一个Visual Studio扩展,允许自动将子进程附加到当前调试器,这可能比我的代码更好,但它不可移植,因为它需要本地配置.

实现我需要的最简单的方法似乎是使用IDE本身以编程方式重新启动项目,就像我手动右键单击项目并选择Debug> Start New Instance一样.我可以在我的代码中访问相关的DTE对象(在开发中).

因此,有没有办法使下面的伪代码工作,要求Visual Studio 通过将其作为命令参数传递来开始调试特定项目/ exe?

DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance", "ProjectToBeRestarted");

DTE.ExecuteCommand("Debug.Start", "ProjectToBeRestarted");

DTE.ExecuteCommand("Debug.Start", "ProjectToBeRestarted.exe");
Run Code Online (Sandbox Code Playgroud)

我想尽可能避免操纵UI(比如存储原始启动项目,设置新项目,以及恢复启动项目).

c# debugging scripting automation visual-studio

8
推荐指数
1
解决办法
1197
查看次数

标签 统计

c# ×2

debugging ×2

automation ×1

scripting ×1

visual-studio ×1