gpt4 book ai didi

debugging - 使用 CLion 构建 Python C 扩展 - 如何调试

转载 作者:行者123 更新时间:2023-12-04 03:36:58 25 4
gpt4 key购买 nike

我能够使用 Clion 为 Python 构建 C 扩展,并使用 pip install -e 重建和安装扩展。我已确认扩展是在未删除所有调试信息的情况下构建的。

我可以让 CLion 在调试器中运行我的 Python 测试套件中的特定测试用例 - 逐行单步执行 Python 代码,但该调试器不允许我单步执行 C 扩展;并且不会在 C 源代码中设置的断点处停止。

如何从 Python 调试器连接到 C 调试器?

最佳答案

CLion doesn't support允许在 Python 和 native 代码之间跳转的混合模式调试。

您需要使用 native 调试器(GDB 或 LLDB),并调试加载脚本和运行测试用例的 python 解释器进程。您可以通过附加到正在运行的 Python 进程,或者创建一个运行配置来实现这一点,该运行配置将使用适当的命令行参数启动解释器。

这两种情况的关键点是使用 CLion 自己的工具来调试 native 应用程序,而不是作为捆绑的 Python 支持的一部分提供的工具。

使用 GDB/LLDB 附加到正在运行的进程

当附加到一个已经运行的进程时,您可能会发现两个对应于该进程的条目:一个允许使用 Python 调试器进行附加(一个用于逐步执行 Python 脚本),另一个允许使用 native 进行附加调试器。

CLion attach to process

使用 GDB/LLDB 启动解释器

如果您知道将调用您的测试脚本的确切 python 解释器命令行,您可能会发现此设置对于频繁的编辑/调试迭代更方便。它不是很简单,但在 Custom build targets and applications 上有详细描述。帮助文章。

简而言之,您这样做的方法是创建一个“自定义构建目标”,它会触发重建您的 native 扩展(可能通过调用 pip install -e),然后创建一个新的“自定义构建应用程序”运行配置,将 python 解释器的路径设置为可执行文件。

enter image description here

完成后,您可以像往常一样调试运行配置,它将使用为自定义构建目标选择的工具链中的 native 调试器。

关于debugging - 使用 CLion 构建 Python C 扩展 - 如何调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66705324/

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