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

如何在GDB中仅查看指定共享库中符合名称模式的全局变量

如何在GDB中仅查看指定共享库中符合名称模式的全局变量

刚好我之前也碰到过这种情况——用info var MyPattern搜出来的全局变量一大堆,根本找不到目标库的内容,这几个方法亲测好用:

方法一:直接通过共享库名称限定搜索

首先你可以通过info dll(Windows系统)或者info shared(类Unix系统)命令,找到目标共享库的准确名称(比如libfoo.so、bar.dll这类)。

然后用带库名限定的info var命令搜索,启用正则匹配的话加上-r参数:

info var -r libfoo.so::MyPattern

如果你的模式是精确匹配,也可以去掉-r参数。注意如果库名带版本号(比如libfoo.so.1),最好写完整的名称,或者用通配符*来匹配,比如libfoo*::MyPattern。

方法二:通过地址范围过滤

同样从info dll或info shared里,你能看到每个共享库的加载地址区间(比如0x7f1234000000到0x7f1234100000)。

然后把这个地址范围作为参数传给info var,就能只列出该区间内符合名称模式的变量:

info var MyPattern 0x7f1234000000 0x7f1234100000

方法三:用维护命令结合过滤

如果需要更灵活的筛选,可以用maintenance info variables命令,它会输出变量的详细信息,包括所属的库路径,然后结合GDB的管道功能用grep过滤:

maintenance info variables MyPattern | grep libfoo.so

这个方式适合你需要同时匹配多个条件的场景,比如既要符合名称模式,又要属于某个特定路径下的库。

备注:内容来源于stack exchange,提问作者JenyaKh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 10:23:01