我有一个项目,我一直在使用MIEngine和clrdbg在Linux上进行调试。当我从Visual Studio启动应用程序时,调试器附加正常,我的断点被击中。如果我将应用程序作为系统启动的守护程序运行,Visual Studio似乎让我将调试器附加到进程,但输出窗口中没有输出(除了初始标题解释了我允许对调试执行的操作)工具),我的断点都没有被击中。
我正在使用VS2015并在命令窗口中使用Debug.MIDebugLaunch。这是我的选项文件的样子......
从Visual Studio启动应用程序:
<?xml version="1.0" encoding="utf-8" ?>
<PipeLaunchOptions xmlns="http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014"
PipePath="path-to\plink.exe" PipeArguments="-i path-to\ssh-debug.ppk user@machinename -batch -t ~/clrdbg/clrdbg --interpreter=mi"
TargetArchitecture="x64" MIMode="clrdbg" ExePath="dotnet" WorkingDirectory="~/workingDirectory" ExeArguments="ApplicationName.dll">
</PipeLaunchOptions>
用于从Visual Studio连接到正在运行的应用程序(如果我重新启动服务并且它以不同的ID出现,我将更改ProcessId):
<?xml version="1.0" encoding="utf-8" ?>
<PipeLaunchOptions xmlns="http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014"
PipePath="path-to\plink.exe" PipeArguments="-i path-to\ssh-debug.ppk user@machinename -batch -t ~/clrdbg/clrdbg --interpreter=mi"
TargetArchitecture="x64" MIMode="clrdbg" ProcessId="19036">
<LaunchCompleteCommand>None</LaunchCompleteCommand>
</PipeLaunchOptions>
关于可能发生的事情或我失踪的事情的任何想法? 这是一个错误,还是我可能需要更新一些东西?
修改 我改变了我的&#34;附加&#34;选项文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<PipeLaunchOptions xmlns="http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014"
PipePath="path-to\plink.exe" PipeArguments="-i path-to\ssh-debug.ppk user@machinename -batch -t ~/clrdbg/clrdbg --interpreter=mi --attach 19036"
TargetArchitecture="x64" MIMode="clrdbg">
<LaunchCompleteCommand>None</LaunchCompleteCommand>
</PipeLaunchOptions>
它确实有效,但现在我无法弄清楚如何在不中断过程的情况下分离调试器。