GDB 调试技巧

GDB调试技巧

启动gdb调试

方法一:

复制代码
gdb exe core

方法二:

复制代码
gdb -c core
(gdb) file exe

加载符号文件

  1. 在启动GDB时,使用-s选项指定符号文件的路径,例如:

    复制代码
    gdb -s /path/to/symbol/file executable
  2. 在GDB中使用symbol-file命令手动加载符号文件,例如:

    复制代码
    (gdb) symbol-file /path/to/symbol/file

GDB调试时设置动态库搜索目录

当gdb调试时使用bt查看堆栈信息,都显示???时,通常时由于库搜索路径错误导致的,可在启动调试后使用set sysroot、set solib-absolute-prefix、set solib-search-path来指定库搜索路径。

  • set sysroot 与 set solib-absolute-prefix 是同一条命令,实际上,set sysroot是set solib-absolute-prefix 的别名

  • set solib-search-path设置动态库的搜索路径,该命令可设置多个搜索路径,路径之间使用":"隔开(在linux中为冒号,DOS和Win32中为分号)。

    set solib-absolute-prefix 与 set solib-search-path 的区别
    总体上来说solib-absolute-prefix设置库的绝对路径前缀,只对绝对路径有效;而solib-search-path设置库的搜索路径,对绝对路径和相对路径均起作用。(编译器自动链接的so库多采用绝对路径)。

  • 查看动态库的加载路径可使用下列命令

    (gdb) info sharedlibrary

  • 注意调试时找到的动态库要跟core文件产生的一致,调试才能正常

相关推荐
Dovis(誓平步青云)39 分钟前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
专注_每天进步一点点1 小时前
SLB(绑定弹性公网ip)-gateway-业务pod,gateway上出现reset by peer,业务pod上没有reset by peer
服务器·tcp/ip·gateway
Java小白笔记1 小时前
Docker 安装配置完全指南:MacOS 、Windows、Linux环境下的安装、配置与验证
linux·macos·docker
ACP广源盛139246256732 小时前
GSV6155@ACP# 搭配 AI 服务器、AI PC 完整适配方案
大数据·服务器·人工智能·分布式·单片机·嵌入式硬件
qetfw3 小时前
CentOS 7 搭建 LDAP 目录服务
linux·运维·centos
ALINX技术博客4 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统进阶-PS DMA
linux·fpga开发
IT方大同4 小时前
linux简介
linux·运维·服务器
Dear~yxy5 小时前
时间同步服务器搭建
运维·服务器
mounter6255 小时前
从内存隔离到运行时防线:透视 Linux 内核安全强化的博弈与演进
linux·网络·安全·linux kernel·kernel
wbs_scy6 小时前
仿 muduo 高并发服务器项目:实现 LoopThread 与 LoopThreadPool 多线程事件循环
运维·服务器