首页 > 编程语言 >Python使用gdb进行debug的方法

Python使用gdb进行debug的方法

时间:2022-08-30 10:25:18浏览次数:47  
标签:Python py gdb 版本 debug 安装

准备工作:

1、必须安装gdb,一般系统默认安装过了,未安装的根据系统使用不同命令安装,比如 yum install gdb,也可以用rpm命令进行安装

2、必须有一个携带符号表的Python,版本与要定位的问题Python版本相同,可以用yum安装,也可以直接下载。

这里,我下载了一个release的Python,同时下载了一个对应版本的符号表debug包。然后将debug包中的output中的*.dbg拷贝至python解压目录的bin下即可。

3、下载对应版本的libpython.py文件(可选)

该文件可以将C的堆栈转换为Python的堆栈,更方便问题定位。可以从Python源码包的Tools/gdb/libpython.py找到。版本必须相同。

 

调试已有进程,假设进程号为12345

gdb /home/tuzkee/Python-3.9.2/bin/python 12345

/home/tuzkee/Python-3.9.2为Python的路径,版本必须与12345使用的Python版本一致,bin下面必须用前面的方式安装了dbg文件

启动成功后,就可以正常使用gdb命令了

如果想把C的堆栈转换为Python堆栈,可以先执行

source /home/tuzkee/libpython.py

然后就可以执行py-bt命令了

更多的py开头的命令可以敲入py后双击tab联想出来

 

标签:Python,py,gdb,版本,debug,安装
From: https://www.cnblogs.com/tuzkee/p/16638378.html

相关文章

  • python print居中-靠右-靠左输出
    1 居中输出   需要使用center函数使用center函数,需要str类型的数据。width参数:长度,需要填一个int类型的参数fillchar参数:两边填充的字符,需要一个str类型的参数(可以......
  • Python入门系列(五)一篇搞懂python语句
    If语句elif关键字是pythons表示“如果前面的条件不为真,那么试试这个条件”。Theelsekeywordcatchesanythingwhichisn'tcaughtbytheprecedingconditions.a=......
  • [CISCN2019 华北赛区 Day1 Web2]ikun-1|python反序列化
    考点:JWT身份伪造、pythonpickle反序列化、逻辑漏洞1、打开之后首页界面直接看到了提示信息,信息如下:2、那就随便注册一个账号进行登录,然后购买lv6,但是未发现lv6,那就查看......
  • python之面向对象
    面向对象本质:将特定的数据与特定的功能绑定到一起将来只能彼此相互使用对象其实就是一个容器里面将数据和功能绑定到一起使用场景一:​ eg:游戏人物......​ ......
  • python数据精度问题
    一、python运算时精度问题:1.运行时精度问题在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和十进制之间对应问题会导致数值的精度问题,比......
  • python学习Day55
    Day55今日内容概要一.jQuery更多操作1.筛选器方法2.操作标签3.jQuery事件4.jQuery动画效果二.Bootstrap页面框架今日内容详细一.jQuery其他操作1.筛选器方......
  • gdb交互命令
    gdb交互命令启动gdb后,进入到交互模式,通过以下命令完成对程序的调试;注意高频使用的命令一般都会有缩写,熟练使用这些缩写命令能提高调试的效率;运行run:简记为r,其作用是......
  • python列题(定时器|搜索框)
    尝试编写JS时间案例 1.页面定时器案例 有一个input框两个按钮一个开始一个结束 1.点击开始按钮input内展示当前时间并按秒数刷新2.点击结......
  • Python爬虫-Xpath语法与lxml库的用法(二)
    一、安装pip方式安装pipinstalllxml二、Xpath术语2.1节点在XPath中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML文档......
  • 学习python-Day49
    今日内容作业尝试编写JS时间案例 页面定时器案例 有一个input框两个按钮一个开始一个结束 1.点击开始按钮input内展示当前时间并按秒数刷新......