gpt4 book ai didi

内核源码+vscode+bear+clang实现函数任意跳转,无缝跳转,无缝阅读,无缝开发

转载 作者:撒哈拉 更新时间:2024-11-10 18:46:01 57 4
gpt4 key购买 nike

1、准备工作

1、内核源码版本选择

务必有一份能编译通过的《内核源码》,本次选择5.10版本的.

#说明:5.10版本的《内核源码》里,在 scripts/clang-tools 目录下有《gen_compile_commands.py》文件,这个脚本也能生成《compile_commands.json》文件。
已确定4.19版本没有,请尽量选择高版本的内核源码。

2、VScode

2.1、安装 Clangd 插件,确保安装到已经远程连接的虚拟机里.

以下简称:VSC
经过别的文章提示,建议务必禁止vsc插件为:<C/C++ Extension>。

2、clang+bear

2.1、安装bear

sudo apt-get install -y bear
bear --version #验证bear有无安装好,出现版本号则正常

2.2、内核源码目录操作

进入该内核源码目录 。

bear make ARCH=arm64 CROSS_COMPILE=/home/topeet/Linux/rk3568_linux_5.10/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- rockchip_linux_defconfig
#或者用下面这个
bear make ARCH=arm64 CROSS_COMPILE=/home/topeet/Linux/rk3568_linux_5.10/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- rockchip_defconfig

bear make ARCH=arm64 CROSS_COMPILE=/home/topeet/Linux/rk3568_linux_5.10/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- -j8

2.3、产物

会在kernel文件夹下生成 compile_commands.json 文件.

2.4、VSC操作

直接打开你的vscode,用vsc仅仅打开内核源码所在目录,然后任意点击一个C代码文件将触发clang,在VSC的 终端 页码里点击“输出”,然后选择“clangd”,即可看到触发clang的过程。同时,在VSC的左下角将看到类似如下提示:

# 数字可以不是下面所写的,仅供案例参考
<转圈> indexing:98/3695

当索引结束,即可使用.

2.5、工程目录操作

复制一份 compile_commands.json 文件到当前工程目录下即可.


3、clang+源码内置脚本

3.1、内核源码目录操作

​ 1.1、进入该内核源码目录,弄配置文件 。

make ARCH=arm64 CROSS_COMPILE=/home/topeet/Linux/rk3568_linux_5.10/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- rockchip_linux_defconfig

​ 1.2、进入该内核源码目录,编译内核源码 。

make ARCH=arm64 CROSS_COMPILE=/home/topeet/Linux/rk3568_linux_5.10/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- -j8

3.2、产物

# 在内核源码所在目录下执行:
python scripts/clang-tools/gen_compile_commands.py
# 生成 compile_commands.json 文件

3.4、VSC操作

直接打开你的vscode,用vsc仅仅打开内核源码所在目录,然后任意点击一个C代码文件将触发clang,在VSC的 终端 页码里点击“输出”,然后选择“clangd”,即可看到触发clang的过程。同时,在VSC的左下角将看到类似如下提示:

# 数字可以不是下面所写的,仅供案例参考
<转圈> indexing:98/3695

当索引结束,即可使用.

3.5、工程目录操作

复制一份 compile_commands.json 文件到当前工程目录下即可.


4、参考文档

1、《【vscode基于clangd实现Android/Linux代码跳转】》 https://huaweicloud.csdn.net/654861dd91098a1041274b84.html 。

2、《看代码神器:vscode+clangd轻松实现linux内核代码跳转(图文并茂)》 。

https://blog.csdn.net/ludaoyi88/article/details/135051470 。

3、《VSCode+clangd阅读linux内核源码》 。

https://blog.csdn.net/weixin_40209493/article/details/128175003?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-128175003-blog-135051470.235v43pc_blog_bottom_relevance_base5&spm=1001.2101.3001.4242.1&utm_relevant_index=1 。

最后此篇关于内核源码+vscode+bear+clang实现函数任意跳转,无缝跳转,无缝阅读,无缝开发的文章就讲到这里了,如果你想了解更多关于内核源码+vscode+bear+clang实现函数任意跳转,无缝跳转,无缝阅读,无缝开发的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com