python - 在 Visual Studio 中调试 Python 和 C++

标签 python debugging native breakpoints

我希望能够单步调试作为 Python 脚本使用的 dll 一部分的 C++ 代码。

我看过https://learn.microsoft.com/en-us/visualstudio/python/debugging-mixed-mode-c-cpp-python-in-visual-studio?view=vs-2019我认为我已经正确实现了这一点。然而,当我启用启用 native 代码调试时,Python 中的断点不再起作用,并且它表明在代码中找不到任何符号。

我进入 Visual Studio Python 安装并选择了Python native 开发工具

Visual Studio installation

Python 符号已安装并存在于事件环境中: python symbols

在“调试”选项卡上,我尝试将解释器路径设置为 python_d.exe,并在“符号”选项卡上的“调试”>“选项”中,我选择了关联的符号: Debug>Options(Symbols) 我尝试选择上图中的多个选项,但没有成功。

我怀疑这很简单,我做错了,有什么想法吗?谢谢!

最佳答案

我遇到了同样的问题,但没有找到解决方案。

如果您想要解决方法,请尝试将 native 代码附加到 python.exe 进程:

  1. 开始调试 Python 脚本(没有 native 支持)并等待某个断点
  2. 在另一个 VisualStudio 实例中启动您的 native 项目,设置所需的断点,然后转到“调试”->“附加到进程”,选择启动的 python.exe 进程(您可以通过 PID 找到它)
  3. 继续执行 python。

这对我有用。请注意,您还需要使用调试符号来编译 native 代码。

快乐寻找错误! =)

关于python - 在 Visual Studio 中调试 Python 和 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64636079/

相关文章:

c++ - "i"在当前上下文中不可用

python - 在 Python 中定义变量(宏)

Python 反转嵌套字典

python - 队列形状必须与数据类型具有相同的长度

perl - 如何调试突然退出的 Perl 程序?

c++ - 检测到堆损坏 : after normal block. .. CRT 检测到应用程序在堆缓冲区结束后写入内存

python - 在 gcp 虚拟机上安装 matplotlib

debugging - 是否可以在即时窗口中执行汇编语言指令

java - Java/Maven 中 native 库的工作流

android - 本地移动应用程序的实时服务器更新