我正在尝试调试(命中断点)python脚本,该脚本通过C#的新过程执行。
我已经安装了“子进程调试功能”工具,因为该工具据说可以做到这一点。
根据其文档,它需要两件事:
父进程必须使用本机调试enigne进行调试
父进程必须使用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,没有遇到断点。
饮歌长啸
相关分类