MIEngine Debugging适用于Launch,但不适用于Linux上的Attach

时间:2017-05-17 15:54:17

标签: c# visual-studio debugging visual-studio-2015 asp.net-core

我有一个项目,我一直在使用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>

它确实有效,但现在我无法弄清楚如何在不中断过程的情况下分离调试器。

1 个答案:

答案 0 :(得分:0)

安装Visual C++ for Linux Development修复了问题,并使ProcessLd属性与PipeLaunchOptions一起正常工作。