首页 > 其他分享 >gdb常用命令

gdb常用命令

时间:2023-06-11 20:34:18浏览次数:33  
标签:文件 查看 命令 gdb 常用命令 test 断点

1. gdb

[GDB调试教程:1小时玩转Linux gdb命令]

sudo dnf debuginfo-install glibc-2.32-2.fc33.x86_64

编译时, gcc -g test.c -o test,因为在调试二进制文件的时候,我们需要在二进制文件中加入调试信息,而调试信息是怎么添加的呢?它是在编译的时候,通过-g选项添加的,即类似于gcc -g test.c -o test这样的命令。缺少-g参数会出现出错信息【No symbol table is loaded. Use the "file" command.】,添加之后执行文件稍微变大。

开始调试时,gdb test --silent;再次运行或提示【】, 换别的执行文件需要命令 file test

GDB常见的调试指令

gcc -g [option] [file]
gdb 可执行文件

设置断点和恢复命令

1.常见命令

  • l(list):查看载入的文件代码,如:l 10l main

  • b(break):设置断点,如:b 10b main

  • info b:查看断点信息;

  • r(run):从main运行,到断点处暂停;

  • v 行号:从该行号开始运行;

  • p(print) n:查看n值;

  • n(next):单步下行;

  • s(step):单步进入;

  • c(continue):恢复程序的运行,执行下面程序;

2.高级命令

  • disable 点;

  • enable 点;

  • delete 点info编号;

  • tbreak 临时断点(一次);

  • condition 点 <条件>;

  • ignore 点

查看源代码相关命令

  • list(l) <行号>/<函数名>;

  • file [文件名] 加载文件;

  • forword-search 正则表达式;

  • reverse-search 正则表达式;

  • show directories 源文件路径;

  • disassemble 函数名:反汇编;

  • info line 显示加载内存gdb码;

设置工作环境相关命令

  • set args 参数 //main(args)

  • show args

  • path dir 设定程序运行路径

  • show paths 查看程序运行路径

  • set envirnment var[=value] 环境变量

  • show envirnment var/PATH

  • cd dir

  • pwd

  • shell commend

查看运行数据相关命令

  • print(p) 表达式、变量

  • x /<n/f/u> <addr> 查看内存变量内容

    • n:表示显示内存长度(整数)

    • f:表示显示格式

      • d:十进制

      • x:十六进制

      • o:八进制

      • t:二进制

    • u: 表示显示字节数

    • <addr>:变量内存地址

  • display 表达式

    • display /i $pc 显示c和汇编同步

    • x /i $pc 程序计数器

gdb core 使用(找段错误)

  1. 打开core dump

    1. ulimit -c 默认大小为0

    2. ulimit -c size(k)

  2. gcc -g 源 -o 目文件

  3. 运行有问题产生的core文件

  4. gdb 可执行文件 core文件

2, Debuginfod : 在线调试信息服务器

[Debuginfod]

标签:文件,查看,命令,gdb,常用命令,test,断点
From: https://www.cnblogs.com/weixicai/p/17473519.html

相关文章

  • Docker CLI docker container exec 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • Docker CLI docker export 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • gdb
     当程序出现“段错误(核心已转储)”的错误时,这通常意味着你的程序访问了无效的内存地址,导致程序崩溃。你可以使用gdb调试器来查找在程序的哪一行代码导致了这个错误。下面是使用gdb调试器查找错误的一般步骤:  在编译你的程序时,使用-g选项生成调试信息。这样gdb就......
  • Maven常用命令及其作用
    一、Maven常用命令及其作用1、mavenclean:对项目进行清理,删除target目录下编译的内容2、mavencompile:编译项目源代码3、maventest:对项目进行运行测试4、mavenpacket:打包文件并存放到项目的target目录下,打包好的文件通常都是编译后的class文件5、maveninstall:在本地......
  • Linux常用命令
    以下是常用的Linux命令:1.ls:列出目录中的文件和子目录。2.cd:切换当前目录。3.pwd:显示当前工作目录的完整路径。4.mkdir:创建一个新的目录。5.rm:删除文件或目录。6.cp:复制文件或目录。7.mv:移动文件或目录,也可以用于重命名文件或目录。8.cat:显示文件内容。9.less:......
  • GDB调试
    在编译的时候要加上“-g”选项才可以调试,例如:gcc-g-oprogmain.cmstore.c 参考链接:GDB官方手册:Top(DebuggingwithGDB)(sourceware.org)......
  • Docker CLI docker events 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • git常用命令
    git学习小游戏:https://learngitbranching.js.org/?locale=zh_CN答案:略,自行百度git中文文档:https://git-scm.com/book/zh/v2常用命令参考文档: https://liaoxuefeng.gitee.io/resource.liaoxuefeng.com/git/git-cheat-sheet.pdf 初次安装完成后的设置gitconfig--globa......
  • linux常用命令2
    pwd命令 Linuxpwd(英文全拼:printworkdirectory)命令用于显示工作目录。 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。 语法pwd[--help][--version]参数说明:--help在线帮助。--version显示版本信息。mkdir命令Linuxmkdir(英文全拼:makedi......
  • Docker CLI docker diff 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......