python - 从 PyCharm 调试到 Visual Studio C++ 代码

标签 python c++ visual-studio debugging pycharm

我目前正在尝试调试 Caffe for Windows 中的问题PyCaffe.

因为 bug in Python Tools for Visual Studio ,PTVS 不起作用,所以我正在使用 PyCharm 并尝试通过 Visual Studio 2013 附加到 PyCaffe 的进程。也就是说,我在 Python 脚本上运行 PyCharm 调试器,在我调用 Python 条目的位置设置了断点指向 PyCaffe。

我在 PyCharm 中调试 Python 脚本,它调用在 VS 中用 C++ 编写的模块。我想用 C++ 调试这些模块。因此,我尝试使用在 VS 中设置的断点附加到 PyCharm 或 Python 进程。

问题是断点没有在 Visual Studio C++ 代码中的 PyCaffe 入口点触发。

有没有人成功地让这种事情发挥作用,或者是否有其他方法可以做到这一点?

最佳答案

几年前我遇到过类似的问题,试图 调试用户模式驱动程序希望从 RPC 自动加载,我找到的解决方案是:

  1. 从 Microsoft 下载中免费下载适用于 Windows 的调试工具(取决于您的系统 x86 或 x64)。
  2. 在C代码中希望断点生效的地方添加“__asm int 3”(这是硬件断点的asm指令)。
  3. 编译C程序,通常带有调试信息(这部分很重要,因为帮助调试器找到源文件),这应该不会有任何问题。
  4. 将调试器附加到正在运行的进程(在我的例子中是资源管理器进程),在你的例子中应该是第一次调用库的进程,例如,如果 PyCharm 为新的 python 代码创建一个进程,调试器需要附加到那个进程(你可以通过在 python 中设置一个断点来管理这个,希望会给你时间来做附加过程),我弄清楚这个的简单方法是让进程崩溃,因为“__asm int 3"如果没有附加调试器会导致进程崩溃,你可以利用这个等待崩溃,当 Windows 显示屏幕“进程 ... 检测到需要关闭的问题”时,你知道是谁是您正在寻找的过程。

第一次这样做可能会很痛苦,但对我来说非常有效,因为你 可以看到从一个程序到另一个程序的数据流,

关于python - 从 PyCharm 调试到 Visual Studio C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38536062/

相关文章:

python - Redis 和 Django

python - 如何在 jinja2 中全局定义一个计数器,以便它记住它的最后一个值

python - 将图片和绘图与带有 alpha channel 的 matplotlib 结合起来

c++ - 如何将ASCII转换为无符号整数

c++ - Qt:QScrollArea 中的自定义小部件

c# - StyleCop 镇压

python - 乒乓球游戏两名玩家 tkinter 错误

c++ - 有没有办法让函数返回一个类型?

c# - NuGet出现包丢失问题,如何恢复?

c# - 带有 Visual Studio 的 Docker 卷