首页 > 编程语言 >gdb---结合python自动化调试

gdb---结合python自动化调试

时间:2023-05-03 16:46:11浏览次数:47  
标签:脚本 execute python --- gdb test 调试

gdb---结合python自动化调试

gdb支持通过python自动化调试,实现循环、读写内存、保存内容等复杂逻辑,不需要安装模块。
核心函数:

gdb.execute(command [, from_tty [, to_string]])

脚本示例 test.py:

import gdb

gdb.execute("break *0x12345678")
gdb.execute("continue")
# 指定 to_string=True 可以让脚本接收输出并做后续处理,这是能让gdb和脚本交互的重要参数
the_line = gdb.execute("info registers eip", to_string=True)
gdb.execute("dump memory /root/memory.dump $ebx $ebx+0x100")

启动gdb,执行如下命令调用脚本:

source ./test.py

也可以把命令写到gdb脚本 test.gdb 中,启动时指定脚本启动

gdb -x test.gdb

参考链接:

  1. https://segmentfault.com/a/1190000005718889
  2. https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html#Basic-Python

2023/5/3

标签:脚本,execute,python,---,gdb,test,调试
From: https://www.cnblogs.com/-rvy-/p/17369243.html

相关文章

  • Python中从控制台程序获取输入
    1. Python中的控制台程序是什么? 控制台(也称为shell)基本上是一个命令行解释器,它从用户那里获取输入,即一次一个命令并解释它。如果它没有给出错误,那么它会运行命令并给出请求的结果,否则它会显示错误消息。Python中的控制台程序应该是这样的这里我们编写命令,只需按回车键即可......
  • dqwwn1-服务器弱点
    主机发现sudonmap-sn192.168.28.0/24TCP端口扫描:sudonmap-sT--min-rate1000-p-192.168.28.34-oAnmapscan/portsTCP端口版本扫描sudonmap-sT-sV-sC-O-p22,80,3306192.168.28.34-oAnmapscan/detail脆弱性扫描:sudonmap--script=vuln-p22,80,3306192.......
  • docker编排参数详解(docker-compose.yml配置文件编写)
    dockercompose在Docker容器运用中具有很大的学习意义,dockercompose一.前言关于dockercompose技术可以查看官方文档 DockerCompose以下的内容是确立在已经下载好Docker以及DockerCompose,可参看DockerCompose的官方安装教程 InstallDockerCompose二.DockerCom......
  • 跨域问题(CORS / Access-Control-Allow-Origin)
    1、前言   最近在项目中,调用EurekaREST接口时,出现了CORS跨越问题(Cross-originresourcesharing),在此与大家进行分享,避免多走些弯路。   项目前端(http://localhost:9000)通过Ajax方式调用EurekaREST接口(http://localhost:8761/eureka/apps)时,却没有任何反应,则通过F12查......
  • 如何在 Python 中不换行打印?
    一般来说,从C/C++切换到Python的人想知道如何打印两个或多个变量或语句而不切换到python中的换行符。因为pythonprint()函数默认以换行符结尾。如果你使用print(a_variable)Python有一个预定义的格式,它会自动转到下一行。例如:print("cafedev")print("cafedevscafedev"......
  • Python中从控制台程序获取输入
    1. Python中的控制台程序是什么? 控制台(也称为shell)基本上是一个命令行解释器,它从用户那里获取输入,即一次一个命令并解释它。如果它没有给出错误,那么它会运行命令并给出请求的结果,否则它会显示错误消息。Python中的控制台程序应该是这样的这里我们编写命令,只需按回车键即可......
  • 如何在 Python 中不换行打印?
    一般来说,从C/C++切换到Python的人想知道如何打印两个或多个变量或语句而不切换到python中的换行符。因为pythonprint()函数默认以换行符结尾。如果你使用print(a_variable)Python有一个预定义的格式,它会自动转到下一行。例如:print("cafedev")print("cafedevscafedev"......
  • CC BY-SA 4.0原文及翻译
    CCBY-SA4.0原文及翻译英文参考链接中文参考链接原文:Attribution4.0International(CCBY4.0)Thisisahuman-readablesummaryof(andnotasubstitutefor)thelicense.Disclaimer.Youarefreeto:Share—copyandredistributethematerialinanymediu......
  • kubevirt实验部署:k8s1.23.17+kube-ovn+nfs+kubevirt+ceph 集成使用
    标签(空格分隔):kubernetes系列一:kubevirt的简介KubeVirt是一个Kubernetes插件,它为Kubernetes提供了在与容器相同的基础结构上提供、管理和控制虚拟机的能力。KubeVirt是由云原生计算基金会(CNCF)赞助的开源项目,目前正处于孵化阶段。KubeVirt使Kubernetes能够使用与容器化工作负......
  • Python 中的字符串、列表和元组
    字符串、列表和元组String、  List 和 Tuple 是Python中3种不同的数据类型,但它们都属于 Sequence数据类型。序列数据类型序列(发音为/x.co-u-en.xì/)是一种数据类型,由其中的一组(或集合)元素(成员)组成。sequence_type_1=("one","two","three","four","five","si......