c# - 使用源代码将进程附加到调试器?
问题描述
在调试模式下运行 C# 控制台应用程序时,是否可以使用 Process.Start() 启动另一个 C# 控制台应用程序(相同的程序或不同的程序),然后使用 C# 源代码自动将其附加到调试器?
我正在使用 Visual Studio 2017+、.NET 4.7.2、C# 7.3。
这个问题不是重复的,因为建议的问题/答案都没有完全回答这个特定问题。我正在寻找一种完全自动化的方法来使用源代码将任何进程对象附加到当前调试器。其他问题中的答案都没有专门解决这个问题。例如,他们建议使用过时的插件、生成新的调试器实例或手动附加进程,而不是使用 C# 源代码来完成任务。
例如:
var this_exe = Environment.GetCommandLineArgs()[0];
var p = Process.Start(this_exe, "/compute");
// How to attach 'p' to the debugger?
解决方案
在您从 Process 开始的 exe 的 Main 方法中,添加 Debugger.Launch(),例如
private static void Main(string[] args)
{
Debugger.Launch();
//your code
}
推荐阅读
- powershell - Extracting AD records attributes from a group but need manager's email address as well
- angularjs - Can not write text at left align after adding Image with a caption in Froala editors
- angular - 对象的角度数据绑定私有属性
- elm - Elm 0.19:elm 编译时出现“字节不足”错误
- firefox-addon - Firefox插件直接从标签打印/下载到特定位置
- android - Deeplink ionic3:不要在安卓上启动应用
- node.js - 如何仅在更新字段时触发 Firebase 云功能?
- r - R - Shiny 不会让我转换序列日期
- python-2.7 - Matplotlib:内存和“CPU”泄漏
- javascript - ng-if中的Angular JS多重条件