c# - 如何在现有调试器中附加子进程?
问题描述
我一直在查看 Scott Chamberlain 提供的解决方案,将现有的调试器附加到 A 启动的进程 B。
在ICommand
A 我有这些:
Process.Start(@"C:\...\General.exe", Name);
Application.Current.Shutdown();
并且 B在视图DataContext
中设置为:Code.cs
<Window.DataContext>
<local:Code/>
</Window.DataContext>
在构造函数中我有这些:
Debugger.Launch();
Name = Environment.GetCommandLineArgs().Skip(1).First();
它启动 JIT 调试器,但GroupBox
我Possible Debuggers
总是有一个选项:
...的新实例
如何A
在Possible Debuggers
列表中获取附加到 的现有调试器?A和B都在同一个解决方案中。
解决方案
除了Scott 的回答中描述的解决方法,您还可以尝试使用扩展:Microsoft Child Process Debugging Power Tool。这个扩展允许 Visual Studio 在我们启用选项后自动调试子进程Debug=>Other Debug Targets=>Child Process Debugging Settings
。(我们需要确保选择混合如果我们正在调试 .net 代码,则为模式)
目前支持VS2013~VS2019。更多细节你可以查看这个博客。希望能帮助到你 :)
推荐阅读
- vb.net - 解析具有分隔符但非 CRLF 行分隔符的文本文件(使用 vb.net)
- node.js - 阿里云函数是否支持 Node.js 和 Express?
- python - 调用函数而不是使用numpy数组时如何使程序工作?
- c++ - 使用 std::cout 时的输出偏移
- javascript - 可视化音频文件波形,Web Audio API
- javascript - React 将 onclick 数据传递给其他元素
- angular - rjxs 中 catchError 的反义词是什么?
- asp.net-core - 在 Asp.net Core Identity 2.1x 中扩展 UserRoleStore
- javascript - jQuery 方法不适用于附加数据和委托
- java - 位图未显示在图像视图中