gdb常用命令

linux&GDB调试器使用手册中文版 详细介绍了linux的GDB调试器的使用方法,是GNU下一款强大的调试工具,使我们的开发工作变的容易而有乐趣。 立即下载

#bash
gcc -fno-stack-protector -z execstack -o level1 level1.c
这个命令编译程序。-fno-stack-protector和-z execstack这两个参数会分别关掉DEP和Stack Protector。同时我们在shell中执行:

#!bash
sudo -s
echo 0 > /proc/sys/kernel/randomize_va_space
exit
这几个指令。执行完后我们就关掉整个linux系统的ASLR保护。

disas main,显示main函数对应的汇编代码

(5)b设置断点 b means break

格式:b *内存地址

delete:删除所有断点

delete num:删除编号为num的断点

info break:列出所有断点

(6)ni 单步步过,相当于debug命令中的p

(7)si 单步步入,相当于debug命令中的t

(8)finish 执行到返回

(9)display 显示某寄存器的值

 格式:display /x $寄存器名字。例如:display /x $eax

(10)x查看内存单元

格式:x /nfu 内存地址 x means examine

说明:
n表示要显示的内存单元的个数
f表示显示方式, 可取如下值:
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a按十六进制格式显示变量。
i 指令地址格式。
c 按字符格式显示变量。

s 按字符串格式显示变量。
f 按浮点数格式显示变量。
u表示一个地址单元的长度,其中:
b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节。

更改内存的值:
set $rsp=0x00000000
set *0x00000329332d="/bin/sh"

(11)p查看变量值

格式: p 变量名

(12)查看寄存器的值
info register

如果要查看变量的地址,用p &变量名

aaaaaaaaaaaaaaaaaaaabbbbbb

查看当前程序栈的内容: x/10x $sp–>打印stack的前10个元素
查看当前程序栈的信息: info frame----list general info about the frame
查看当前程序栈的参数: info args—lists arguments to the function
查看当前程序栈的局部变量: info locals—list variables stored in the frame
查看当前寄存器的值:info registers(不包括浮点寄存器) info all-registers(包括浮点寄存器)
查看当前栈帧中的异常处理器:info catch(exception handlers)

info share 这个地址不是偏移
info proc mapping 这个里面模块第一个开始位置即是偏移

查找可执行程序依赖库位置

ldd /bin/ls

查找库导出函数
objdump -tT xxx.so

AD936x Evaluation Software 实战配置指南:从寄存器设置到滤波器优化 本文提供AD936x Evaluation Software的实战配置指南,详细解析从工程创建、RF向导与时钟模块配置,到数字滤波器优化、数字接口设置及增益控制的完整流程。重点分享寄存器设置、滤波器系数权衡及PLL稳定技巧等核心要点,帮助开发者高效配置AD9361/AD9363射频芯片,快速应用于SDR、基站等场景。 阅读详情

相关推荐

如何设计一个处理物联网设备数据流的后端系统。

设计一个处理物联网设备数据流的后端系统,需要综合考虑设备数据采集、传输、处理、存储等多个方面,保证系统能够处理海量数据,具备高可用性、扩展性和安全性。合理选择适当的技术架构和工具(如MQTT、Kafka、InfluxDB等),并确保系统能够灵活应对不断变化的业务需求和设备接入。

weixin_53227829的博客 839

GDB基本调试命令

开始: gdb 文件名 基本指令: help //帮助 i //info,查看一些信息,只输入info可以看可以接什么参数,下面几个比较常用 i b //常用,info break 查看所有断点信息(编号、断点位置) i r //常用,info registers 查看各个寄存器当前的值 i f //info function 查看所有函数名,需保留符号 i $esp //查看esp寄存器 dereference $esp //gef show //和info类

weixin_51867085的博客 4150

边缘智能新篇章:RK3588上YOLOv8姿态估计的轻量化部署与性能优化实战

本文详细介绍了在RK3588平台上部署和优化YOLOv8姿态估计模型的完整流程。通过模型转换、ONNX中间表示和性能优化策略,实现在边缘设备上的高效实时推理,为嵌入式AI应用提供可行的轻量化解决方案。

ik6789012的博客 151

gdb调试进阶之disassemble

在gdb调试的过程中,除了会使用基本命令外,我们还可以学会使用一些进阶命令,比如dissassemble,它是一个反汇编命令,即将目标代码反汇编成汇编代码。有时候我们使用的可执行程序并不带有调试信息,也就无法看到实际代码的执行结果,但是我们可以通过汇编代码来查看程序在执行过程中出现的异常崩溃等问题。通过打印rax寄存器rax中的值也可以看出其保存的地址值是0,也就是空指针,那么对0进行寻址,必然会失败。实际上,生产环境中程序崩溃的定位会复杂很多,此处结合disass的使用只提供了一点点的思路。

Black.Spider的博客 3434

RC滤波电路工作原理:【带图+公式计算】

容抗Xc和电容C成反比,和频率f也成反比,C越大,交流电容易通过电容,说明电容量大,电容的阻碍作用小;交流电的频率高,交流电也容易通过电容,说明频率高,电容的阻碍作用也小。我们可以看到,一个2V的纹波,经常RC电路后,幅值下降到mv级别,基本可以忽略不计,这就是RC滤波电路的工作原理。一个频率为1Khz的信号,通过一个容值为0.1uf的电容,计算电容对该信号产生的阻抗。将RC滤波器电路中的电阻,取值为1KΩ,电容取值为0.47uf,纹波幅值为2V。从公式1可以看到,Xc越大,Vout值就越接近Vin的值。

weixin_66299220的博客 2万+

【博客汇总】UV打印机博客汇总

UV平板机博客汇总

Print World的专栏 1741

GDB小技巧disas /m main以及disas /s main(后面这个更好用将源程序和汇编指令映射起来)

1、 #include <stdio.h> void strcats(char *s, char *t); int main() { char s1[] = "Hello, "; char t1[] = "world!"; strcats(s1, t1); return 0; } void strcats(char *s, char *t) { while (*s) s++; while (*s++ = *t++); } g

小吕的博客 3118

详解TCP/IP五层模型

TCP/IP模型是一个网络通信体系结构,由五层组成,每一层都有其特定的功能。应用层传输层网络层数据链路层物理层每一层都有不同的责任,通过这种层次结构,网络通信可以更有效地进行。

2201_75437633的博客 1万+

GDB调试命令(二)---反汇编相关

将可执行程序用gdb program_name

moonsheep_liu的专栏 4万+

Python 爬虫实战:爬取 BOSS 直聘职位,实现岗位要求关键词提取

摘要:本文基于BOSS直聘数据分析师岗位信息,采用Python爬虫技术获取职位数据,通过文本分析和可视化方法研究岗位技能需求特征。研究首先设计爬虫程序获取职位基本信息和岗位要求文本,经数据清洗后运用jieba分词和词频统计提取关键词。结果显示SQL、Python为最核心技能,不同级别岗位需求差异明显:初级重基础数据处理,高级需建模和管理能力;行业间亦存在差异,互联网关注用户增长,金融侧重风控。研究为求职者技能提升提供了数据支持,同时展示了从非结构化文本中挖掘有价值信息的完整流程。

2503_91057718的博客 1766

动量因子在A股市场的有效性分析:量化实证研究

验证动量因子在A股市场的有效性及时间周期性分析不同时间窗口(短期/中期/长期)对动量效应的影响量化交易成本、市场流动性对动量策略收益的侵蚀程度比较A股与成熟市场(如美股)动量效应的差异特征理论框架:行为金融学解释动量效应的产生机制技术实现:Python全流程代码实现动量因子计算与回测实证分析:统计检验、风险收益指标、敏感性分析应用拓展:结合市场微观结构的策略优化方案动量因子(Momentum Factor)

2501_92132293的博客 2480

csapp实验bomb lab(反汇编技术与gdb调试)

csapp lab:bomb炸弹实验详细解析

qq_53162179的博客 2934

Day 01: 与Python的第一次亲密接触

环境搭建 、第一个程序 Hello, World!、以及Python之禅 (The Zen of Python) 的解读。

杨小扩的博客 220

GDB常用命令

GDB自定义命令介绍GDB中有一个非常强大的功能,允许用户根据具体场景需求自定义命令。end自定义命令以define开始,后面跟命令名字,并且以end结束。define和end中间是具体的实现逻辑。序号条目描述1$argc自定义命令的参数个数2$arg0自定义命令的第一个参数3$arg1自定义命令的第二个参数4$arg2自定义命令的第三个参数5$argN自定义命令的第N+1个参数应用1:两数相加define addend应用2:链表打印。

qq_39776661的博客 6988

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

gdb常用命令大全

gdb命令大全;gdb保姆级详细介绍;

Y_Y9182527的博客 4767

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

GDB调试常用命令

使用GDB调试的时候,GDB默认只能跟踪一个进程,可以在fork函数调用之前,通过指令设置GDB调试工具跟踪父进程或者是跟踪子进程,默认跟踪父进程。-Wall 的作用: 在不影响程序行为的情况下打开所有warning,发现更多的问题,避免不必要的BUG。-g 的作用:在可执行文件中添加源代码信息,比如可执行文件第几条对应源码第几行。结束当前调用函数并返回指定值,到上一层函数调用处。监视某一个变量或内存地址的值是否发生变化。切换到当前调用线程的指定堆栈。查看当前线程的调用堆栈。运行一个待调试的程序。

andy0ma的博客 793

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

gdb调试常用命令总结

gdb调试常用命令总结: 回车 默认将最近的命令执行一遍 在调试程序加上调试符号信息: 加参数-g, 作用是加上了可执行程序和源码之间的映射关系 如果之后源码位置改变,可以通过dir命令更改源码存放目录,以重新设置映射关系(可指定多个路径,:隔开) 1.启动gdb调试 gdb filename : 启动未启动程序进行调试(需要run) gdb attach pid:对已经启动的程序调试, detach让gdb调试器与程序分离 gdb corename: 调试core文件 ulimit -c查看cor

Dave_lzw的博客 3942

gdb 调试常用命令

gdb调试常用命令

weixin_43471255的博客 1700

GDB常用命令大全 GDB 命令详细解释

GDB常用命令大全 GDB 命令详细解释 一、查看GDB命令帮助 两次按下tab键 然后console 控制台输入help 二、 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。 GDB主要帮..

weixin_38070782的博客 575

Linux 使用 GDB 进行调试的常用命令与技巧

GDB(GNU Debugger)是一个功能强大的调试工具,可以帮助开发者在程序运行过程中查找和修复问题。本文将介绍如何使用 GDB 调试程序,包括常用命令、调试 core 文件和正在运行的程序。当程序崩溃时,系统可能会生成一个 core 文件,包含了程序的内存快照和崩溃时的状态信息。使用 GDB 可以帮助分析这些文件。GDB 也可以用于调试正在运行的程序。你可以附加到一个已经启动的进程,并实时调试它。命令将 GDB 附加到一个正在运行的进程。在调试正在运行的程序时,你可以在进程中的特定位置设置断点。

qq_45797625的博客 1446

gdb 常用命令

它每帧显示一行,对于许多帧,从当前正在执行的帧(零帧)开始,然后是其调用者(第一帧),并在堆栈上。

RandyOliver's House 481

【gdb教程】gdb调试工具使用方法及常用命令

GDB是GNU调试器(GNU Debugger)的缩写,是一个功能强大的命令行调试工具。它通常用于调试程序的运行过程,帮助程序员追踪和修复代码中的错误。GDB可以用于以下目的找到程序中的错误:GDB允许程序员在程序中设置断点,当程序执行到断点时,可以查看当前的变量值、堆栈信息等,帮助发现代码中的错误。理解程序的运行过程:GDB允许程序员逐步执行程序,并在每个步骤中查看变量值和堆栈信息,帮助理解程序的运行过程。追踪程序崩溃的原因。

当实力撑不起野心的时候 学习才是唯一出路 1075

【Linux】gdb简介 | gdb常用命令 | gdb的使用

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具。3.1 运行命令run:简记为 r ,其作用是运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。continue (简写c ):继续执行,到下一个断点处(或运行结束)next:(简写 n),单步跟踪程序,当遇到函数调用时,也不进入此函数体;

强哥的微博 1852

gdb常用命令及用gdb调试coredump

gdb常用命令: https://blog.youkuaiyun.com/niyaozuozuihao/article/details/91802994 gdb调试coredump: https://blog.youkuaiyun.com/u014403008/article/details/54174109

a13602955218的博客 763

gdb常用命令及参考文档

gdb常用命令及参考文档前言使能方式启动方式常用命令!helpprocl/listb、break + line 或者函数名break-ifdelete、 clearinfor/runns/stepp/print打印数组setfinishc/continuekillfilewatchstartdisplay/dispcatchx技巧backtrace/btframe/fargs信号调试多线程调试attachcoredump 文件开始调试core文件使用gdb dump内存gdb读取内存使用gdb打印栈帧参考链

杰特JET的博客 717
上一篇: 编程
下一篇: android壳技术总结
inquisiter
博客等级 码龄10年 374粉丝 228原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值