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文件产生的一致,调试才能正常

相关推荐
Kina_C4 小时前
Linux iptables 防火墙原理与实操——从四表五链到 NAT 配置
linux·运维·服务器·iptables
wdfk_prog4 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
灵机一物9 小时前
企业选型参考:2026 CXL 内存扩展方案六强测评与落地指南
服务器·网络·数据库·人工智能
Web极客码9 小时前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
yeflx9 小时前
速腾Airy雷达使用记录
java·服务器·网络
公众号:fuwuqiBMC10 小时前
(转自“服务器BMC”)服务器BMC芯片——多Die(芯片)封装
运维·服务器·人工智能
jsons110 小时前
autofs挂载
linux·服务器·网络
liwulin050610 小时前
【ollama】自定义结构化输出
linux·前端·数据库·ollama
gs8014010 小时前
【实战】记一次 Linux 服务器入侵排查:grok-agent 后门木马深度剖析与彻底清理
linux·运维·服务器
霸道流氓气质11 小时前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库