【发布时间】:2021-08-17 08:54:39
【问题描述】:
我的最终目标是调试一个 Python 脚本,该脚本调用我自己用 C++ 编写的 COM dll。在 MS Visual Studio Community 2019 中使用 Python 3.8。
我的主要问题是调试。 MSVC 不断要求 Python38.dll 的调试符号,并且未能命中断点。
在我的 Python 项目调试属性中,如果不选中“启用本机代码调试”,那么我的 Python 会在我设置的断点处正确运行和停止。 COM dll 在断言上失败(这是我正在尝试调试的内容),我可以选择“重试调试”...但没有任何反应,我的 python 代码结束 (The program 'python3.8.exe' has exited with code -1 (0xffffffff).)
如果我勾选“启用本机代码调试”,程序会忽略我的 Python 断点,并弹出此窗口:
如果我选择“关闭”,则 Visual Studio 开始运行 Python 脚本(没有遇到任何 Python 脚本断点),断言被命中,选择“重试”会在有问题的行打开我的 C++ 代码(至少在一定程度上有所帮助)。如果从 Excel 中的 VBA 驱动,相同的 COM dll 工作正常,所以我怀疑我在通过 win32com.client 传递参数时遇到问题,所以我想检查 dll 是否正在接收我认为我发送的内容:因此需要调试.
您可以在其中看到我已按照他们网站上的 MS 说明进行操作,并使用 Python 3.8 安装程序来安装符号。目录 C:\Program Files\Python38 确实包含 python38.pdb。我怀疑 Visual Studio 正在从其他地方加载 python?我是否将符号安装在错误的位置?
我希望能够单步执行我的 Python 代码(在标记的地方点击断点),并在 C++ 代码中点击断点。这可能吗?如果可以,我该如何设置我的 Visual Studio 以与 Python 3.8 完美配合?
【问题讨论】:
标签: python c++ visual-studio debugging