You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GDB Tab补全功能补全函数名来设置断点?

解决GDB中链接库函数断点的Tab补全问题

1. 先确保链接库已加载

GDB得等链接库实际加载后,才能识别里面的函数。如果程序还没启动到加载库的阶段,Tab补全肯定没用。可以这么做:

  • 用start命令启动程序,停在main函数入口,这时大部分动态库已经加载完成
  • 或者开set stop-on-solib-events 1,让GDB在加载/卸载共享库时自动暂停,等库加载完再补全

2. 限定库名触发补全

直接输b foo::按Tab没反应的话,试试加上库名限定:

  • 输入b 你的库文件名.so::foo::(替换成实际的库文件名),再按Tab,GDB会列出该库下所有foo::开头的函数
  • 也可以先跑info functions foo::,先看清楚所有匹配的函数名,再复制过来设断点

3. 调整GDB补全设置

默认补全可能不够给力,改两个设置试试:

  • 执行set completion-display-width 0,取消补全结果的宽度限制,确保能显示完整函数名
  • 执行set max-completions 1000,提高补全结果的最大数量,避免函数太多被截断

4. 给长函数名设别名

如果某个复杂函数名要反复用,直接整个别名:

  • 输入define bfoo,然后换行输b foo::step,再输end保存这个自定义命令
  • 之后直接敲bfoo就能快速设断点,不用再输完整函数名

内容的提问来源于stack exchange,提问作者KKKmelody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:55:58