zoukankan      html  css  js  c++  java
  • 8.16——gdb调试命令

    一、什么是GDB?

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

    二、GDB完成的功能

    GDB主要帮忙你完成下面四个方面的功能:
    1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
    2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
    3、当程序被停住时,可以检查此时你的程序中所发生的事。
    4、动态的改变你程序的执行环境。

    三、GDB调试命令

    1、编译生成执行文件:(Linux下)
    hchen/test> cc -g tst.c -o tst

    2、启动GDB调试

    启动GDB的方法有以下几种:

    1、gdb <program>
    program也就是你的执行文件,一般在当然目录下。
    2、gdb <program> core
    用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。
    3、gdb <program> <PID>
    如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。
    program应该在PATH环境变量中搜索得到。
    GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。我在下面只例举一些比较常用的参数:
    -symbols <file>
    -s <file>
    从指定文件中读取符号表。
    -se file
    从指定文件中读取符号表信息,并把他用在可执行文件中。
    -core <file>
    -c <file>
    调试时core dump的core文件。
    -directory <directory>
    -d <directory>
    加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。


    3、使用GDB调试常用命令
    hchen/test> gdb tst <---------- 启动GDB

    (gdb) l <-------------------- l命令相当于list,从第一行开始例出原码。

    (gdb) <-------------------- 直接回车表示,重复上一次命令

    (gdb) break 16 <-------------------- 设置断点,在源程序第16行处。

    (gdb) break func <-------------------- 设置断点,在函数func()入口处。

    (gdb) info break <-------------------- 查看断点信息

    (gdb) r <--------------------- 运行程序,run命令简写

    (gdb) n <--------------------- 单条语句执行,next命令简写。

    (gdb) c <--------------------- 继续运行程序,continue命令简写。

    (gdb) p i <--------------------- 打印变量i的值,print命令简写

    (gdb) bt <--------------------- 查看函数堆栈。

    (gdb) finish <--------------------- 退出函数。

    (gdb) q <--------------------- 退出gdb。

    亲爱的自己,不要抱怨自己不够聪明、没有天赋,要记住,越努力,越幸运!
  • 相关阅读:
    Linux系统调用
    Kubernetes 中强化tab 功能
    Docker镜像构建之案例分享
    网络基础之名词介绍
    网络基础协议之UDP(下篇)
    网络基础协议之UDP(上篇)
    内核升级
    尼恩 Java高并发三部曲 [官方]
    CDN图解(秒懂
    DNS图解(秒懂
  • 原文地址:https://www.cnblogs.com/baiting0317/p/3263578.html
Copyright © 2011-2022 走看看