我正在尝试调试(命中断点)一个通过 C# 中的新进程执行的 python 脚本。
我已经安装了Child Process Debugging Power 工具,因为该工具应该允许人们这样做。
根据其文档,它需要两件事:
必须使用本机调试引擎调试父进程
父进程必须使用 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 Studio 2017,没有遇到断点。
尚方宝剑之说
相关分类