• gdb调试入门(上)


    一、什么是gdb:gdb是GNU debugger的缩写,是编程调试工具

    二、gdb功能:
    1、启动程序,可根据用户要求随心所欲的运行程序(比如带参数)
    2、可让被调试的程序在用户指定的调试的断点处停住
    3、当个程序停住,可以检查程序中发生的事(比如打印变量值)
    4、动态改变变量程序的执行环境

    三、使用实例:
    gcc -Wall -g mian.c -o simple   注意:需要加上-g选项,以便生成调试信息。方便gdb调试,如果不加,只显示汇编代码,没有源文件代码。

    gdb simple          #启动gdb
    (gdb) list          #查看所有源代码  l 2,10
    break  10                   #设置断点   b func   在函数func处设置断点
    i  b                        #查看断点
    info break                  #查看断点
    l(list) 10                        #查看第10行代码
    run                         #启动程序
    s                           #单步跟踪
    print  i                    #打印当前i的值
    until                       #跳出循环,当厌倦了在一个循环体内单步跟踪时,这个命令可以直接运行程序直到退出循环。
    p(print) result                    #查看result值
    c                           #运行到下一个断点处 continue
    step(s)                     #单步跟踪
    next(n)                     #不进入函数内(单步)
    finish                      #退出整个函数
    q                           #退出gdb
    break if<condition>         #条件成立时中断
    watch expr                  #当expr值发生改变时,程序中断
    delete  n                   #删除断点  n为第几个断点,n=1,删除第一个断点

    接下来详细讲解下一:

    1、run  arg1  arg2 :运行时,可以跟上参数。若未设置断点,则直接运行程序。否则运行到断点处。

    2、list  fun   查看fun函数源码。     list  file:fun 查看file文件中的fun函数源码

    3、break  行号:设置断点; break fun 在某函数处设置断点 ;        或者break file:行号  ;break  file:fun     

    4、continue(c)  运行到下一个断点

    5、s单步跟踪,会跟踪到函数内部。

    6、finish:运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值以及参数值等信息。

    7、next(n):单步跟踪,不进入函数。

  • 相关阅读:
    leetcode-13. Roman to Integer
    leetcode-171. Excel Sheet Column Number
    学生信息管理系统案例小结
    Kafka 生产者、消费者与分区的关系
    json.dumps()包装中文字符串
    Spring-JDBC
    JDBC 连接池
    JDBC
    Python DBUtils 连接池对象 (PooledDB)
    Java Junit单元测试
  • 原文地址:https://www.cnblogs.com/wsw-seu/p/8228458.html
Copyright © 2020-2023  润新知