c# - 如何使用c#执行vsjitdebugger.exe
问题描述
我想使用以下代码为某些进程执行“vsjitdebugger.exe”:
var myapp = Process.Start(@"path\to\myapp.exe");
Process.Start("vsjitdebugger.exe", $"-p {myapp.Id}").WaitForExit();
但是失败了。
退出代码为“-1”,不显示窗口。
为了执行 vsjitdebugger.exe,我必须做什么?
UPATE #1
我只想立即将调试器附加到特定进程。
这就是为什么我提供代码方式而不是注册表方式。
以管理员身份执行:
var myapp = Process.Start(@"path\to\myapp.exe");
Process.Start(new ProcessStartInfo()
{
FileName = @"vsjitdebugger.exe",
Arguments = "-p {myapp.Id}",
Verb = "runas"
}).WaitForExit();
UAC屏幕后也失败了。
解决方案
通过代码使用即时调试器对您不起作用,因为您必须以管理员权限运行才能使用它。
您可以做的是在您想要的进程上自动启动调试器。
在尝试通过 C# 执行进程之前,我建议在这里阅读更多关于 Visual Studio 的 JIT 的信息。
这根本不安全,被认为是不好的做法。除非有紧急需要,否则我建议您首先将所有其他可能性最大化。
推荐阅读
- angular - 使用 Angular 中的自定义按钮从 Kendo Grid 获取 DataItem
- django - Django 在 APIView 中获取 ForeignKey 对象
- sql-server - 如何为 SQL Server 中的重复列添加不同的值?
- python - pandas:计算 blackman 窗口的最大值:缺少函数 pandas.core.window.Window.[max, apply]
- arrays - 将 JSON 解析为 Cloudinary 和 node.js 的数组
- android - 使用 ACRA 和 tracepot 作为后端
- sql-server - SQL 使用两个过滤列连接查询一行
- apache - htaccess 阻止访问,除了某些文件夹
- javascript - 在 javascript 中从 localhost 访问 XML 文件
- chart.js - chartjs 2.7 如何在水平条形图的中心添加标签