Linux Gdb调试备忘录

概述: 调试基础知识

一、addr2line的使用

     file lib.so 查看是否被strip过

     addr2line -e lib.so 0x12323

二、gdb的使用

1、gdb 可执行程序 core.1234

       !clear清除之前的显示

2、进程卡死的处理方式

        gdb -p [pid] pid是没有退出的进程ID

        然后generate-core-file [/path/to/sava/the/core] 生成core文件,

        拿回来分析 set solib-search-path 共享库路径

       set debug-file-directory

三、gdb info查询信息

1、常用

        info registers 当前寄存器的值

        info args 查看当前函数参数的值

        info locals 查看当前局部变量的值

        info frame 查看当前栈帧的详细信息

        info variables 查看程序中变量符号

        info functions 查看程序中函数符号

        info inferiors (查看当前进程数量)

        inferios 1切换到哪个进程

2、info thread

        info threads(查看当前线程数量)

         thread n(切换到哪个线程)

         info locals

         info registers

        print $rbp

四、gdb堆栈查看

thread apply all bt

info proc mappings 显示进程地址空间布局,包括代码段、数据段、堆、栈等

info proc map 同上

info sharedlibrary

调试java 启动的Jar,但是jar通过Jni调用了C++/C生成的test.so 然后生成了core文件

gdb $JAVA_HOME/bin java core.test set solib-searh-path ‘test-so_path’

五、在linux下配置core文件的生成

  • 执行 sudo vi /etc/profile

  • 浏览的文件末尾,添加 ulimit -c unlimited,保存退出

  • 执行 source /etc/profile

  • 执行 ulimit -a,查看 core file size 那一栏的值是否为 unlimited

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值