gpt4 book ai didi

python - 从 Python (ctypes) 调试 C 库

转载 作者:太空狗 更新时间:2023-10-29 18:07:42 28 4
gpt4 key购买 nike

我有一个使用 ctypes 和 C 共享库(dll 文件)的 Python 程序。作为 IDE,我正在使用 Eclipse,这两个项目都将在其中开发(C 共享库和使用它的 python 程序)。

我的想法是:当我在 Debug模式下启动 Python 程序时,我能否以某种方式调试也用 C 编写的共享库?含义:我可以设置断点吗?当 Python 程序到达共享库中的断点时,执行停止,我可以更改变量值等吗?

最佳答案

实际上,在 Eclipse 中使用 CDT 和 PyDev 环境是一件相当简单的事情。

我在这里假设您已经正确配置了项目,因此您可以单独构建和调试每个项目。

基本上,您只需在 Debug模式下启动 Python 项目,然后将 CDT 调试器附加到正在运行的 Python 进程。为了方便起见,我将尝试逐步描述它:

  1. 在 Debug模式下运行您的 Python 项目。在使用 ctypes 加载 dll 之后在某处放置一个断点。记下创建的 python 进程的 pid(您应该在控制台 View 中看到第一行说明 pid。类似于:pydev debugger: starting (pid: 1234))

  2. 为您的 CDT 项目创建调试配置,选择类型“C/C++ 附加到应用程序”。您可以使用默认配置。

  3. 使用您创建的配置调试您的项目。应该会出现一个窗口,询问您要附加到哪个进程。选择具有正确 pid 的 python 进程。

  4. 您现在可以为 C 代码添加断点。

在调试透视图中,您将有两个调试器,就好像它们是两个不同的进程一样。当您使用 python 调试器时,您应该始终确保 C/C++ 调试 session 正在运行 - 只要 C/C++ 调试 session 被挂起,python 调试器就会没有响应。

关于python - 从 Python (ctypes) 调试 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25507911/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com