混合模式调试 Python/C# 使用子进程调试强大工具

Mixed mode Debugging Python/C# using Child Process Debugging Power Tool

我正在尝试调试(命中断点)python 脚本,该脚本通过 C# 的新进程执行。

我已经安装了 Child Process Debugging Power tool,因为据说该工具允许这样做。

根据其文档,它需要两件事:

  1. 必须使用本机调试引擎调试父进程
  2. 父进程必须使用 CreateProcess 或 CreateProcessAsUser Win32 API 启动子进程。

我的流程创建如下:

ProcessStartInfo startInfo = new ProcessStartInfo();
Process p = new Process();

startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = false;
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardInput = false;
...
p.StartInfo = startInfo;
p.EnableRaisingEvents = true;
p.Start();

据我所知,只要我使用

UseShellExecute = false; 

进程应使用 CreateProcess 启动。 (要求 2)

在我的项目中,我还启用了本机代码调试。 (要求 1)

我还在我的交易品种列表中包含了 python.pdb 和 python36.pdb。 但是我似乎找不到 python3.pdb

'python.exe' (Win32): Loaded 'C:\...\Python36\python.exe'. Symbols loaded.
'python.exe' (Win32): Loaded 'C:\...\Python36\python36.dll'. Symbols loaded.
'python.exe' (Win32): Loaded 'C:\...\python3.dll'. Cannot find or open the PDB file.

当我使用调试符号安装 python 时并没有包括这个,我似乎在其他任何地方都找不到它。

我用的是visual studio2017,没有断点

如果有人遇到这个问题,请快速更新 post。

我联系了这个工具的创建者,尽管它的描述可能表明我在这里尝试做的事情应该有效,但它没有。

与我交谈的人说他会与他的 python 团队讨论这个问题,但我已经几个月没有听到任何消息,所以我认为这不会很快发生。