[python] 如何debug python脚本中C++后端的core dump

文章目录

Debug过程

  • 另外:对于core dump: gdb版本是>=7,gdb从版本7开始支持对Python的debug。
  • 确保你的系统中安装了 GDB 调试器和对应版本的 Python 调试信息包(例如 python-dbg 或 python-debuginfo)。
shell 复制代码
# 第一步先gdb跑执行python脚本时使用的python bin
gdb path/to/python
# 进入debug 对话框口, 
run python_script.py arg1 arg2 

# 或
gdb -ex r --args python <programname>.py <arguments>

# 打断点
break your_script.py:10  或者 break function_name

############ debug core信息
gdb path/to/python  path/to/core_file
#进入对话框后 执行bt
py-bt

# 如果进程已经开始运行,你可以通过 PID 来接入它:
gdb python <pid of running process>
  • 如果python中有执行C++后端,则在编译python应用的时候,需要在build的时候带上debug信息,这样debug时,更能发现问题细节; 如果用bazel工具编译的,则:
shell 复制代码
# package中是编译C++后端并生成可用python调用的前端代码,使用pybind11来封装C++供python使用的
bazel build  --strip=never --copt=-g --copt=-ggdb  //path/to/package/... 
# 然后执行上面的命令,开始debug python和它的后端C++

扩展阅读:

Reference

相关推荐
曲幽1 小时前
数据库实战:FastAPI + SQLAlchemy 2.0 + Alembic 从零搭建,踩坑实录
python·fastapi·web·sqlalchemy·db·asyncio·alembic
用户8356290780516 小时前
Python 实现 PowerPoint 形状动画设置
后端·python
ponponon7 小时前
时代的眼泪,nameko 和 eventlet 停止维护后的项目自救,升级和替代之路
python
Flittly7 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(5)Skills (技能加载)
python·agent
敏编程8 小时前
一天一个Python库:pyarrow - 大规模数据处理的利器
python
Flittly9 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(4)Subagents (子智能体)
python·agent
xlp666hub10 小时前
Leetcode 第三题:用C++解决最长连续序列
c++·leetcode
会员源码网12 小时前
构造函数抛出异常:C++对象部分初始化的陷阱与应对策略
c++
xlp666hub14 小时前
Leetcode第二题:用 C++ 解决字母异位词分组
c++·leetcode
不想写代码的星星14 小时前
static 关键字:从 C 到 C++,一篇文章彻底搞懂它的“七十二变”
c++