[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

相关推荐
深度学习lover几秒前
<数据集>yolo航拍军事目标识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·航拍军事目标识别
架构师老Y几秒前
002、Prompt基础:大模型交互的第一性原理
人工智能·python·prompt
fish_xk几秒前
c++中的继承
开发语言·c++
2401_832365521 分钟前
如何用 FormData 配合 Fetch 实现无刷新的多文件上传
jvm·数据库·python
2401_871492854 分钟前
如何在网页中实现国际象棋棋子的拖拽与格点吸附功能
jvm·数据库·python
m0_674294644 分钟前
JavaScript窗口大小调整resize事件的适配方案
jvm·数据库·python
Brilliantwxx7 分钟前
【算法题】日期类算法题
开发语言·c++·笔记·程序人生·算法
qq_392690669 分钟前
JavaScript中Symbol类型的唯一性特征与创建规范
jvm·数据库·python
u01102251210 分钟前
Go语言如何处理multipart_Go语言multipart表单教程【精通】
jvm·数据库·python
运气好好的10 分钟前
HTML怎么创建灵感标签智能推荐_HTML输入自动联想标签【技巧】
jvm·数据库·python