neovim调试linux内核过程中索引不到对应头文件问题

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/jintongxu。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。

一、环境

neovim–0.9.4
mason的clangd LSP

二、问题

当用nvim打开linux源码文件时候会出现下列的情况,找不到对应的结构定义,也索引不到对应的头文件,在对应结构按ctrl + ]也进入不了对应的结构。
problems-in-reading-linux-source-code-with-neovim-v0-d5uLE8zd1Ms4YgLPSmeG7UWDsfjeq1KjRL3ZhuzSxMw

三、解决

最后在Reddit上发了篇求助帖子,有个外国友人解决了这个问题。他给推荐了一篇文章Linux Kernel – How to setup your editor

首先编译内核

在linux源码根目录下运行下面命令,编译内核。

make menuconfigmake CC=clang

注意: 如果是在ubuntu下编译内核,需要下载下面的依赖。

sudo apt install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf

生成compile_commands.json文件

也是在根目录运行。

python3 ./scripts/clang-tools/gen_compile_commands.py

然后打开nvim更新完成索引就行了。

2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314151.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网SQL训练5—SQL大厂面试真题

文章目录 一、某音短视频1.各个视频的平均完播率2.平均播放进度大于60%的视频类别3.每类视频近一个月的转发量/率4.每个创作者每月的涨粉率及截止当前的总粉丝量5.国庆期间每类视频点赞量和转发量6.近一个月发布的视频中热度最高的top3视频 二、用户增长场景(某度信…

2 - 表结构 | MySQL键值

表结构 | MySQL键值 表管理1. 库的操作2. 表的操作表的创建与删除表的修改复制表 3. 管理表记录 数据类型数值类型字符类型(汉字或者英文字母)日期时间类型 表头存储与日期时间格式的数据枚举类型 数据批量处理 表管理 客户端把数据存储到数据库服务器上…

12. 整数转罗马数字

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 …

Android 反编译处理Dex

前言 当我们将Android项目打包上架的时候,为了提高被人反编译代码的可能性可以提取 dex 文件对代码进一步做混淆处理。 本文不对相关工具做过多的解释,不了解的可以先熟悉相关工具的使用。 相关工具(点击直接下载) jadx-gui&a…

假两件风衣外套,你喜欢吗?

这款假两件设计的连帽风衣外套,,姐妹们喜欢吗? 宽松版型对身材包容性很强,韩系慵懒风颜色很舒服 时尚百搭怎么穿都好看系列 做了腰部可调节抽绳,想要修身一点的可以自己调节哈 袖口处也做了金属按扣调节,防风保暖 这件风衣也很好搭配&a…

Redis的集群模式:主从 哨兵 分片集群

基于Redis集群解决单机Redis存在的问题,在之前学Redis一直都是单节点部署 单机或单节点Redis存在的四大问题: 数据丢失问题:Redis是内存存储,服务重启可能会丢失数据 > 利用Redis数据持久化的功能将数据写入磁盘并发能力问题…

【web安全】短信等各类验证码的绕过思路整理

前言 本文是对一些验证码可能出现的问题的总结。 验证码的种类分析 首先验证码有两种: 1.短信验证码,这种通常出现在一些登录,修改绑定信息等位置处。 2.人机验证码,这种一般是用来防止机器操作和密码爆破的,通常…

软件测试/测试开发丨Python 内置库 文件处理 学习笔记分享

文件操作步骤 打开文件操作文件:读/写内容关闭文件(读写完成,要及时的关闭) open 方法 def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue):文件读写模式 读操作 忘记关闭文件的危害…

HarmonyOS 路由传参

本文 我们来说两个page界面间的数据传递 路由跳转 router.pushUrl 之前我们用了不少了 但是我们只用了它的第一个参数 url 其实他还有个params参数 我们第一个组件可以编写代码如下 import router from ohos.router Entry Component struct Index {build() {Row() {Column() …

用Linux搭建web服务器

搭建web服务器 www 简介网址及 HTTP 简介HTTP 协议请求的工作流程 www 服务器的基本配置实验实验一实验二、基于多个虚拟主机IP、基于多个虚拟端口、基于个人Web站点的Web网站 www 简介 网址及 HTTP 简介 web 服务器提供的这些数据大部分都是文件,那么我们需要在服…

降压型开关模式转换器

一、基本概述 TX4145 是一款降压型开关模式转换器。TX4145 在 6-60V 宽输入电源范围内实现不同峰值输出电流,并且具有出色的线电压和负载调整率。 TX4145 采用 PWM 电流模工作模式,环路易于稳定并提供快速的瞬态响应。 TX4145 外部提供 FS 脚&#xf…

分库分表之Mycat应用学习五

5 Mycat 离线扩缩容 当我们规划了数据分片,而数据已经超过了单个节点的存储上线,或者需要下线节 点的时候,就需要对数据重新分片。 5.1 Mycat 自带的工具 5.1.1 准备工作 1、mycat 所在环境安装 mysql 客户端程序。 2、mycat 的 lib 目录…