• 2024-07-01如何编写基于RecursiveASTVisitor的ASTFrontendAction
    介绍我现在工作中要写个fuzz引擎,语法分析部分用到了clang的接口,打算写一些博客记录绍下,ast(抽象语法树),libtooling接口的使用等等,文章主要是翻译英文文档在本教程中,您将学习如何创建一个FrontendAction,使用RecursiveASTVisitor查找具有指定名称的CXXRecordDeclAST节点
  • 2024-06-13c语言编译器的分类
    前言在上节《C语言编译和链接》中我们已经讲解了C语言编译器的概念,由于C语言的历史比较久,而且早期没有规范,整个计算机产业也都处于拓荒的年代,所以就涌现了很多款C语言编译器,它们各有特点,适用于不同的平台,本节就来给大家科普一下。我们分两部分介绍C语言的编译器,分别是
  • 2024-06-10vscode运行C++20,支持模块的实现。
    C++是一个古老的语言,为了跟上时代,一直进行缓慢的演化。在2011年,C++11的发布让这个语言进入21世纪,可以现代化的使用。它有着lambda表达式,auto类型推断。此外使用容器替代低级语言结构,智能指针或其他RAII技术加强了安全编程。我们在编写C++代码应多使用现代化的函数。C++20让编程更
  • 2024-06-10三、SpaceVim配置
    一、基本键位映射在配置vim的快捷键时,需要掌握基本键位的描述符。除了基本的<CR>,<ESC>,<SPACE>,<C-..>外,补充下列常用映射表:<k0>-<k9>小键盘数字0-9<BS>退格键backspace<S-...>代表shift<M-...>或<A-...>Windows和Linux下代表alt/meta键,在m
  • 2024-06-10开源C++静态代码检测工具clang-tidy、cppcheck和oclint的比较
    以下是clang-tidy、cppcheck和oclint的比较关于Clang-Tidy的使用请参考:使用Clang-Tidy进行静态代码分析:完整的配置与CMake集成实例关于Cppcheck的使用请参考:使用Cppcheck进行静态代码分析:完整的shell脚本与CMake集成实例关于OCLint的使用请参考:使用OCLint
  • 2024-06-06clang-format说明
    ---#语言:None,Cpp,Java,JavaScript,ObjC,Proto,TableGen,TextProtoLanguage: Cpp#BasedOnStyle: LLVM#访问说明符(public、private等)的偏移AccessModifierOffset: -4#开括号(开圆括号、开尖括号、开方括号)后的对齐:Align,DontAlign,AlwaysBreak(总是在开
  • 2024-05-28clang-format
    formatdiffgitdiff-U0HEAD^|clang-format-diff-16-p1-igithook.git/hooks/pre-commit#!/bin/bashSTYLE=$(gitconfig--gethooks.clangformat.style)if[-n"${STYLE}"];thenSTYLEARG="-style=${STYLE}"elseSTYLEARG="
  • 2024-05-03LeakSanitizer概述与使用指南
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取编程资料什么是LeakSanitizer?LeakSanitizer是一个强大的内存泄漏检测工具,主要用于C/C++程序的内存泄漏问题诊断。它通过在程序运行时监控动态内存分配和释放的行为,帮助开发者快速定位和解决
  • 2024-03-30【Clang+LLVM+honggfuzz学习】(一)LLVM简介、安装和第一个Hello Pass
    本文结构,PS:根据需要选择观看哦1.前言参考2.简介传统编译器架构LLVM架构3.LLVM安装版本准备官网源码下载git下载安装过程4.写一个LLVMPass旧HelloPass实现(legacyPMversion)新HelloPass实现(UsingtheNewPassManager)1.前言漏洞检测做毕设,还有一年。半
  • 2024-03-06clang在指定-O2时对函数局部变量的优化
    在我们将编译器从g++迁移到clang++的过程中,遇到一个问题,有个工具程序只要一运行就会出现coredump问题,并且用gdb调试core文件也无法获得任何有用的堆栈信息。通过不断尝试,发现只有在clang++使用-O2编译时得到的程序才会发生这个问题,使用clang++-O0或者g++编译时不会发生问题。
  • 2024-02-11小白入门clang_format
    如果没时间研究折腾,可以接受这样↓的风格 那么安装这个↓,默认在代码界面按alt+shift+f即可 ========================================================== 如果你想稍微个性化一点在上面的基础上,做以下配置 什么意思自己看上面↑截图的文字介绍 如何回到代码界面按a
  • 2024-02-06Windows下如何使用 Sublime Text 4 配置 C/C++ 环境(使用LSP-clangd)
    1软件安装1.1SublimeText4安装及PackageControl安装略,请自行百度/必应/谷歌。1.2Clang环境安装1.2.1Clang下载在LLVMMinGW下载最新版Clang编译器,此处应根据个人电脑系统及版本选择,本文选择llvm-mingw-20231128-ucrt-x86_64.zip,后续文件名将以此为例。各版本
  • 2024-02-02Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS)
    本篇先针对Windows系统来描述,末尾再补充macOS1、clang官网下载clang-format.exeLLVMDownloadPage 下载最新版本Releases·llvm/llvm-project·GitHub方法1:完整版我们需要从官网下载完整的LLVM编译器,Pre-BuiltBinaries,Windows(64-bit),LLVM-9.0.0-win64.exe。安装时,请
  • 2024-01-241. C++ 开发环境
    C++开发环境VisualC++/GCC(G++)/Clang(Clang++)集成开发环境:VisualStudio/CodeLite/Code::blocks/CLion/Eclipse...工具:/usr/bin/timevalgrindcppreferenceCompilerexplorerC++Insights当前各版本编译器对C++20特性的支持情况:查看网站:https://
  • 2024-01-23How to install Clang 17 or 18 in Ubuntu 22.04 20.04
    HowtoinstallClang17or18inUbuntu22.04|20.04ThissimpletutorialshowshowtoinstallthelatestClangcompiler17and/or18inUbuntu20.04,Ubuntu22.04,andUbuntu23.10.UbuntuincludesseveralversionsofClanginitssystemrepositories.B
  • 2024-01-22vscode windows CMakePresets.json
    vscode在windows下使用Ninja编译配置,使用VisualStudio编译环境。来源:CMakePresets.json参考:在VisualStudio中使用CMake预设进行配置和生成--示例文件CMakePresets.json{"version":2,"configurePresets":[{"name":"base","
  • 2023-12-22clang-format插件下载后不起作用(远程登录)
    1.下载clang-format先在服务器上下载clang-formatsudoaptinstall-yclang-format2.vscode中下载clang-format3.在与.vscode同文件夹下创建.clangformat#风格:Google,LLVM,Chromium,Mozilla,WebKit,Microsoft,GUNBasedOnStyle:Google#语言:None,Cpp,Jav
  • 2023-12-21C和汇编混合编译
    有时候在写C语言项目的时候会需要用到汇编代码直接操作寄存器、栈之类更加底层的东西,所以在这里写一下C和汇编混合编程的几种方法(Windows和Linux需要分开讨论)WindowsVisualStudioWindows下常用的开发环境是VisualStudio,对于x86来说vs默认支持内联汇编,直接通过__asm关键词即可
  • 2023-12-19clang VS gcc 的command-line机制: clang 在 MacOS 上要设置 -isysroot $(xcrun --show-sdk-path)
    clangVSgcc的command-line机制:clang在MacOS上作为编译器时要设置-isysroot$(xcrun--show-sdk-path)注意明确指定clang/clang++在MacOS上作为编译器时,一定要设置CFLAGS/CPPFLAGS为"-isysroot$(xcrun--show-sdk-path)${CFLAGS}"CC="/usr/local/bin/clang"C
  • 2023-12-12clang
    .clang-tidyChecks:>google-*,-*,modernize-*,clang-analyzer-*,performance-*,readability-*,-readability-magic-numbers,-modernize-use-trailing-return-type,-modernize-pass-by-valueCheckOptions:-key:readability-magic-numbe
  • 2023-12-09C++学习笔记一:windows系统配置C++开发环境(VS code+g++/clang++)
    1.下载vscode官网下载地址:https://code.visualstudio.com/安装时选择把软件加入到环境变量中这个选项 2.打开vscode,安装c/c++扩展插件 3.下载gcc和clang编译器下载地址:https://winlibs.com/下载后解压,把bin文件夹所在的路径加入到环境变量中加环境变量的方法:在程序
  • 2023-12-09类C代码风格
    格式化工具推荐使用clang-format和git-clang-format统一C/C++/Objective-C代码风格。代码风格使用工程根目录下的.clang-format文件描述。在新增文件时,使用clang-format调整代码风格:clang-format-i/path/to/files在修改文件时,使用git-clang-format调整新增
  • 2023-12-04最佳 C++ 编译器
    最佳C++编译器Incredibuild​已认证账号​关注 134人赞同了该文章 C++是一个“开放”的编程语言,任何人都可以使用自己喜欢的编译器。当然,C++编译器的种类也很多。同样, C++IDE 也不少,我在之前的一个博客中讨论过这个话题。编译和运行C++
  • 2023-10-28vscode 安装了clang之后 即使卸载也没有跳转功能记录
     借鉴这位博主  【精选】VSCodeC/C++无法跳转到定义、自动补全、悬停提示功能_c/c++:editconfigurations(json)-CSDN博客 (上图高亮部分)卸载clang 重启VSCode 然后IntelliSenseEngine开关设置为Default 应该就可以了 
  • 2023-10-22progs/verifier_netfilter_retcode.c:42:1: error: unknown attribute 'btf_decl_tag' ignored
    平台ubuntu20.04问题在linux内核源码目录下执行下面的命令时:root@ubuntu-vm:/mnt/linux-6.5/tools/testing/selftests/bpf#make报如下错误:progs/verifier_netfilter_retcode.c:41:1:error:unknownattribute'btf_decl_tag'ignored[-Werror,-Wunknown-attributes]__d