首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏ASTMatcher

    ASTMatcher分析函数调用链(上)

    我们必须分析抽象语法树,clang提供了两种方法:ASTMatchers和RecursiveASTVisitor,RecursiveASTVisitor有两种方式实现,一是clang plugin,二是libtooling 2、libtooling libtooling:代码本身是一个正常的C++程序,以正常的main()函数作为入口。 libtooling分析AST无需编译,但整个过程需要逐层遍历,是由上至下的分析查找,并将系统类库和函数分析遍,还会存在重复分析,这样导致分析耗时特别长。 二、clang 1、下载clang 根据官方文档指引下载并安装clang:Tutorial for building tools using LibTooling and LibASTMatchers newFrontendActionFactory(&Finder).get()); } 如何构造cpp文件和生成CMakeLists.txt文件在官方文档:Tutorial for building tools using LibTooling

    7.9K81发布于 2019-10-18
  • 构建C++质量防护网:从静态检查到动态验证的CI/CD完整实践

    常见问题模式识别问题类型检测工具解决方案空指针解引用Clang-Tidy, Cppcheck使用optional或智能指针资源泄漏ASan, ValgrindRAII模式封装线程不安全TSan, Helgrind加锁或原子操作API误用LibTooling

    39810编辑于 2025-08-08
  • 来自专栏Flowlet

    基于WSL2 + VSCode + Clangd 打造最强C/C++编辑器

    Clang 主要由LibClang、Clang Plugins、LibTooling 几部分组成; 在 LibTooling 的基础之上有个开发人员工具合集Clang tools。

    10K30编辑于 2022-08-18
  • 来自专栏【腾讯云开发者】

    企业微信零耦合集成腾讯会议和腾讯文档插件化架构实践

    在探索分析依赖关系方案时,我们共想到三种方案,分别是:分析头文件依赖、分析链接日志、解析 AST,前两种方案简单易实现,但是得到的结果精度不够,不能满足企微团队的需求,最终企微团队选择了解析AST方案,使用 Clang LibTooling LibTooling 是 LLVM 工具链里的接口,它提供了强大的 AST 解析和控制能力,用于编写基于 Clang 能力的独立工具。

    1.9K80编辑于 2023-01-30
  • 来自专栏常见Java面试题解析

    www6663388com请拨18687679362环球国际iOS 微信编译速度优化分享

    不过早在 2011 年 Google 内部做了个基于 Clang libTooling 的工具 include-what-you-use,用来整理 C/C++ 头文件,效果如下: ➜ include-what-you-use

    2.8K20发布于 2020-03-23
  • 来自专栏移动应用开发专栏

    企业微信 iOS 工程演进之路(一)- 组件化

    在探索分析依赖关系方案时,我们共想到三种方案,分别是:分析头文件依赖、分析链接日志、解析 AST,前两种方案简单易实现,但是得到的结果精度不够,不能满足我们的需求,最终我们选择了解析AST方案,使用 Clang LibTooling

    1.9K31编辑于 2022-12-15
  • 来自专栏戴铭的博客

    深入剖析 iOS 编译 Clang / LLVM

    IntroductionToTheClangAST.html http://clang.llvm.org/docs/RAVFrontendAction.html http://clang.llvm.org/docs/LibTooling.html LibTooling 对语法树完全的控制 因为 LibTooling 能够完全控制语法树,那么可以做的事情就非常多了。 可以改变 clang 生成代码的方式。 增加更强的类型检查。 官方有个文档开发者可以按照这个里面的说明去构造 LLVM,clang 和其工具: Tutorial for building tools using LibTooling and LibASTMatchers PLoc.getColumn() << “>\n”; } } } } return true; } Clang Plugin 通过自己写个插件,比如上面写的 LibTooling

    9.1K20发布于 2020-06-16
  • 来自专栏微信终端开发团队的专栏

    iOS 微信编译速度优化分享

    不过早在 2011 年 Google 内部做了个基于 Clang libTooling 的工具 include-what-you-use,用来整理 C/C++ 头文件,效果如下: ➜ include-what-you-use

    10.7K128发布于 2020-01-03
  • 来自专栏即时通讯技术

    微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结

    不过早在 2011 年 Google 内部做了个基于 Clang libTooling 的工具 include-what-you-use,用来整理 C/C++ 头文件。

    3.3K43发布于 2019-12-24
领券