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。

    亲爱的自己,不要抱怨自己不够聪明、没有天赋,要记住,越努力,越幸运!
  • 相关阅读:
    windows编程学习笔记
    自学JAVA-12:MySQL数据库
    自学JAVA-11:IO流
    自学JAVA-10:集合
    自学JAVA-9:基本类常用方法整理
    自学JAVA-8:异常
    自学JAVA-7:多态
    自学JAVA-6:继承
    自学JAVA-5:修饰符、对象初始化
    自学JAVA-4:方法、对象、类、属性
  • 原文地址:https://www.cnblogs.com/baiting0317/p/3263578.html
Copyright © 2011-2022 走看看