当前位置: 首页 > news >正文

【Linux内核】如何更加优雅阅读Linux内核源码(vscode)

1. 前言

因为已经习惯在Ubuntu下进行嵌入式工作开发,但Linux源码在Source Insight下进行阅读,一直很苦恼Linux/Windows来回切换的开发方式,当前发现可以通过 vscode + clangd(扩展组件) 方式进行更好的内核源码阅读。

2. 环境

  • 操作系统: Ubuntu 18.04
  • vscode版本: 1.85.2

3. 配置流程

3.1 clangd(扩展组件)

3.1.1 clangd - 下载

  1. 尝试安装 clang-9 版本
    sudo apt-get install clangd-9
    #如果没有找到,clangd-8 应该至少是有效的
    # sudo apt-get install clangd-8
    
  2. 此时 clangd-9 将会被安装,将clangd-9改为默认clangd 程序调用
    sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-9 100
    
  3. 进行版本验证
    long@long-ubuntu18:~$ clangd --version
    clangd version 9.0.0-2~ubuntu18.04.2 (tags/RELEASE_900/final)
    

clangd官网指南(包含Windows、MacOS指南)

clangd.llvm.org


3.1.2 clangd - 扩展安装

vscode - 扩展 - 搜索:clangd - 安装

clangd安装


3.1.3 clangd - 扩展配置

  1. 点击 clangd 扩展插件的齿轮按钮,进入扩展设置
    clangd扩展配置
  2. clangd: Arguments 配置项,通过 添加项 将下面内容一项一项添加进去
    --compile-commands-dir=${workspaceFolder}
    --background-index
    --completion-style=detailed
    --header-insertion=never
    --log=info
    
    配置

3.3 配置文件

3.3.1 编译Linux内核

  • 如果资料是SDK,则完整编译SDK;
  • 如果资料是Linux Kernel源码,则进行OS配置和编译;

因为 clangd 通过读取工程编译后的 compile_commands.json 配置文件,然后索引配置文件中包含的源文件和关联的头文件,同时分析编译使用到的宏定义,可以避免跳转解析时的语义混乱问题。

3.3.2 生成配置文件

内核源码自带生成 compile_command.json 配置文件的脚本:

# 进入Linux Kernel源码路径
cd kernel_xx
# 执行脚本生成配置文件
./scripts/clang-tools/gen_compile_commands.py 

生效

重启vscode软件即可!


效果

指针悬停自动查看函数、变量原型,宏定义值等
效果

相关文章:

  • Seata TCC模式是怎么实现的?
  • 国内外AI大模型汇总合集-文本类
  • NLP 梳理01 — 文本预处理和分词
  • 软件测试的本质:方法、流程与未来趋势
  • Cocos Creator 进行 Web 发布后,目录结构解析
  • AIP-215 API特定proto
  • 【MySQL基础】MySQL内连接(INNER JOIN)详解:高效关联查询的基础
  • 数字人:从科幻走向现实的未来(1/10)
  • 11-产品经理-创建产品
  • ProfibusDP(主站)如何转Profinet
  • 【图像处理基石】什么是自动曝光(AE)?
  • AtCoder Beginner Contest 400(ABCDE)
  • 虚拟机安装遇到的问题如:Exception 0xc0000005
  • 通俗地讲述DDD的设计
  • SQL注入-盲注靶场实战(手写盲注payload)--SRC获得库名即可
  • 投资策略分析:十年年化32.2%,夏普比1.31的动量斜率策略(策略源码+数据下载)
  • LearnOpenGL-笔记-其九
  • RocketMQ 01
  • 实际犯错以及复盘1
  • FPGA同步复位、异步复位、异步复位同步释放仿真
  • 企业系统管理软件/seo网站推广是什么意思
  • ae模板网站推荐/郑州网站seo优化公司
  • 沈阳网站建设简维/百度竞价怎么收费
  • 网站开发验收确 认书/搜索关键词排名查询
  • 简单网站设计草图/优化营商环境应当坚持什么原则
  • 手机端做网站软件/做网络推广的团队