首页 > 编程语言 >gdb同时调试python和c++

gdb同时调试python和c++

时间:2023-01-29 16:13:39浏览次数:38  
标签:python c++ dbg gdb 源码 build path

说明:

当我们的python程序的一些函数的后端实现为C++时(比如Pytorch, TensorFlow或tvm等)可以使用当前方法调试。
有两种方式可以安装调试环境:

一. 搭建环境

有两种方式搭建环境,第一种是用apt安装dbg包,第二种方式是编译python源码。

1.1 安装python的dbg包方式

以python3.5为例

sudo apt install python3.5-dbg

1.2 下载python源码包编译方式

以Python3.7为例,因为我的ubuntu apt中没有python3.7的dbg包。

1.2.1下载源码包

省略

1.2.2 编译Python源码包
cd /path/to/python/source
mkdir build
cd build
../configure --with-pydebug
make  #会在build目录下生成python-gdb.py
make test
make install
1.2.3 设置gdbinit
vim ~/.gdbinit
添加
add-auto-load-safe-path /path/to/python/source/build
#gdb 在启动时会根据~/.gdbinit 中的设置到/path/to/python/source/build中加载python-gdb.py

二.验证

运行
gdb python3.5 (如果是用源码包的方式则用gdb python3.7)
输入py按Tab键, 可以看到如下命令
在这里插入图片描述

三.使用

运行gdb,然后在C++程序中打断点,程序运行后进入断点时可以使用py-bt命令查看python的调用栈。

 

标签:python,c++,dbg,gdb,源码,build,path
From: https://www.cnblogs.com/lidabo/p/17072954.html

相关文章

  • ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
    前言最近一段时间,我使用golang开发了一个新的ORM库。为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般......
  • Python和C++联合调试
     python和c++分别在Linux和Windows下联合调试首先创建一个python测试项目和一个c++拓展项目一、在Windows下进行调试1.编译器安装2.C拓展模块安装3.调试......
  • ubuntu下C++如何调用python程序,gdb调试C++代码
    Linux下gdb调试C++代码:http://jingyan.baidu.com/article/acf728fd464984f8e410a369.html主要ubuntu下使用C++调用Python:#python代码:(processing_module.py)importcv2......
  • python绘制折线图
    importdatetimeimportmatplotlib.pyplotaspltimportpylabasmplimportnumpyasnp#数据源list_date=['20191005','20191014','20191021','20191217','20......
  • C++ 设计模式--模板方法Template Method
    1.定义定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。TemplateMethod使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某......
  • Python字典对象的创建(9种方式)
    第一种方式:使用{}firstDict={"name":"wangyuanwai","age":25} 说明:{}为创建一个空的字典对象第二种方式:使用fromkeys()方法second_dict=dict.f......
  • 【C++】char使用汇总
    一、char*字符串格式化根据输入的int型参数,与字符串拼接。char*可以替换为char[]intnum=1;chartmpStr[5];sprintf(tmpStr,"Test%d",num);//tmpStr=Test1......
  • 【奇妙的数据结构世界】用图像和代码对堆栈的使用进行透彻学习 | C++
    第十章堆栈:::hljs-center目录第十章堆栈●前言●一、堆栈是什么?1.简要介绍●二、堆栈操作的关键代码段1.类型定义2.顺序栈的常用操作3.链式栈的常用......
  • 常见的6个Python数据可视化库!
    提到数据可视化库,相信大家对这个都不陌生,而且Python中内置了很多数据可视化库,是我们工作的好帮手。本文为大家介绍一下常见的6个Python数据可视化库,希望对你们有帮助。......
  • python 实现app性能测试(cpu、内存占用情况)
    一、获取appcpu占用情况1、实现代码importos,csvimporttimeimportnumpyasnpfrommatplotlibimportpyplotaspltfromcheck_packageimportcheck_package......