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

GDB中info sources命令能否使用多模式?参数异常求助

GDB info sources 多模式过滤问题

GDB的info sources命令不支持同时使用多个过滤选项(比如-dirname和-basename)组合筛选,这是命令本身的设计限制——它一次只能接受一个过滤参数,后续的选项会被当作当前选项的匹配模式内容,所以你输入的-basename stat会被解析成-dirname的正则表达式一部分,自然匹配不到结果。

替代解决方案

  • 分步筛选:先用单个选项缩小范围,再手动查找目标文件。比如先执行:

    info sources -dirname src
    

    然后在输出结果里自行查找包含stat的文件名。

  • 用Python脚本实现组合过滤:借助GDB的Python API,直接遍历所有符号表文件并同时检查目录和文件名:

    import gdb
    
    def filtered_info_sources(dir_pattern, file_pattern):
        for symtab in gdb.current_progspace().symtabs():
            full_path = symtab.filename
            dir_name = gdb.pathname_dirname(full_path)
            if dir_pattern in dir_name and file_pattern in full_path:
                print(full_path)
    

    在GDB中执行以下命令即可使用:

    python filtered_info_sources("src", "stat")
    
  • 单正则匹配完整路径:如果你的GDB版本较新(12及以上),可以直接用正则匹配完整文件路径,把目录和文件名的条件合并成一个表达式。比如:

    info sources ^.*src.*stat.*$
    

    这个正则会匹配路径中同时包含src和stat的文件,可根据实际路径结构调整正则细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:35:01