• GDB使用总结


    http://witmax.cn/gdb-usage.html

     

    首先GDB可以自动化调试,但是我不会

     

    首先编译的时候要加上 -g选项

     

    分屏使用GDB:  gdb  -tui

     

     

     

    GDB中加载程序 :                        file  文件名

     

    设置参数:                                  set args 参数

     

    设置观察点(当有变化就停下):               watch 表达式/变量名

     

    清除停止点:                                clear  行号/函数名

     

    加断点:    b  行号/函数名

     

    输出内存:  x  addr

     

    单步调试: s(不进入函数) / n(进入函数)

     

    打印堆栈:                                  bt

     

    显示源码:                             l  行号/函数名

     

    修改默认的listsize:                          set listsize count

     

    输出变量或者数组:                          变量名/*数组名@长度

     

    自动显示变量: display 变量名

     

    查看寄存器: i  r

     

    改变程序运行:

     

     

    GDB调试多线程

    默认调试多个线程。多个线程同时执行,

    使用“info threads”查看当前的线程数和线程的线程号。

    使用“thread 线程号”可以切换线程。

    使用单步调试的话走的是当前线程,但是也可以在其他线程的函数里设置断点。

    因为进行多线程调试的时候使用s或者c或者所有线程是同步执行的,如果只想让当前进程被执行可以使用“set scheduler-locking off|on|step on只有当前被调试程序会执行,step是在单步的时候,除了next过一个函数外,只有当前线程会执行,off是所有线程都执行。

    GDB调试多进程

    默认调试的是主进程,但是其他的进程会在后台执行,不被调试的进程会后台执行。

    可以通过“set follow-fork-mode [parent|child]   set detach-on-fork [on|off]”来让GDB同时调试多个进程。其中参数如下:

    parent                   on               只调试主进程(GDB默认)
    child                     on               只调试子进程
    parent                   off              同时调试两个进程,gdb跟主进程,子进程block在fork位置
    child                     off             同时调试两个进程,gdb跟子进程,主进程block在fork位置

     

    查询正在运行的进程:info inferiors

    切换调试的进程:    inferior <infer number>

    GDB调试core dump

    使用GDB确定程序挂在哪里,我们只需要四步:

    Ulimit -c unlimited //设置可以生成转储文件

    Gcc -g 文件名 -o 程序名; //生成转储文件

    Gdb 程序名 转储文件名; //定位





  • 相关阅读:
    JAVA字符串格式化-String.format()的使用
    分布式文件系统MFS(moosefs)实现存储共享(第二版)
    iOS 动画学习
    复制对象(一)copy和mutableCopy方法
    iOS-获取当前网页的 url 和 title 和 html
    排序算法 c实现
    常用正则表达式
    iOS-获取的NSDate date时间与实际相差8个小时解决方案
    网络爬虫基本原理(二)
    网络爬虫基本原理(一)
  • 原文地址:https://www.cnblogs.com/dchipnau/p/5255388.html
Copyright © 2020-2023  润新知