gdb

gdb使用小结

Posted by 婷 on August 26, 2023 本文总阅读量

简介

学习gdb的使用,参考链接以及官方手册写的很全,这里记录自己用到过的。不定时更新。

重新运行程序

load benos.elf

image-20230824203730348

也可以直接j _start,跳到入口函数,比如现在运行在line24

image-20230826201600090

现在又跳到入口了

image-20230826201635950

显示当前运行位置

输入l或者list

image-20230824204123841

其实这里也会显示当前的行数以及PC指针

image-20230826163917372

显示内存

addr为内存地址,这条命令相当于memdev之类的工具,dump出内存

#显示0x80000内存处的内容
x/16xb 0x80000  #单个字节显示
x/16xw 0x80000  #四个字节显示

image-20230826111557106

显示寄存器值

在调试coredump的时候,查看coredump时的寄存器值

info r

image-20251215232720629

打印局部变量

info locals

image-20251215232909079

image-20251215233102228

反汇编

disassemble 函数名

image-20251215233250484

查看源码的内存

可以使用info line命令来查看源代码在内存中的地址。info line后面可以跟行号函数名文件名:行号文件名:函数名,这个命令会打印出所指定的源码在运行时的内存地址。

 (gdb) info line tst.c:func
        Line 5 of "tst.c" starts at address 0x8048456 <func+6> and ends at 0x804845d <func+13>.

参考链接