使用sourceinsight阅读内核代码的一些问题

工具栏格式乱了怎么办

https://blog.csdn.net/qq_23327993/article/details/115567723

Linux内核中有很多宏定义,sourceinsight不识别,导致解析出问题

https://blog.csdn.net/nust20/article/details/46486947
https://www.jianshu.com/p/0b4ad9532367
https://tjtech.me/how-to-fix-parse-too-complex-in-source-insight.html
https://blog.csdn.net/qq_41908302/article/details/131273274
https://blog.csdn.net/bestboyxie/article/details/53415487

修改:"Source Insight 4.0\c.tom"

;For Linux Kernel Code
SYSCALL_DEFINE0(name) long sys_##name(void)
SYSCALL_DEFINE1(name, t1, v1) long sys_##name(t1 v1)
SYSCALL_DEFINE2(name, t1, v1, t2, v2) long sys_##name(t1 v1, t2 v2)
SYSCALL_DEFINE3(name, t1, v1, t2, v2, t3, v3) long sys_##name(t1 v1, t2 v2, t3 v3)
SYSCALL_DEFINE4(name, t1, v1, t2, v2, t3, v3, t4, v4) long sys_##name(t1 v1, t2 v2, t3 v3, t4 v4)
SYSCALL_DEFINE5(name, t1, v1, t2, v2, t3, v3, t4, v4, t5, v5) long sys_##name(t1 v1, t2 v2, t3 v3, t4 v4, t5 v5)
__init
__initdata
__initconst
__exitdata
__exit_call
__ref
__refdata
__refconst
__init_refok
__initdata_refok
__exit_refok
__exitused
__exit
__devinit
__devinitdata
__devinitconst
__devexit
__devexitdata
__devexitconst
__used
__must_check
__compiler_offsetof(a,b)
__always_inline
__attribute__
__user
__kernel
__safe
__force
__nocast
__iomem
__chk_user_ptr(x)
__chk_io_ptr(x)
__builtin_warning
__acquires(x)
__releases(x)
__acquire(x)
__release(x)
__cond_lock(x,c)
__percpu
likely(x)
unlikely(x)
__read_mostly
____cacheline_aligned
____cacheline_aligned_in_smp
__cacheline_aligned
__cacheline_aligned_in_smp
____cacheline_internodealigned_in_smp
__cacheline_internodealigned_in_smp
__rcu
__refconst
__refdata
__reg_oper0
__reg_oper1
__bitwise
__bitwise__
__aligned_u64
__aligned_be64
__aligned_le64
__naked
__noreturn
__pure
__always_inline
DRIVER_ATTR(_name, _mode, _show, _store) struct driver_attribute driver_attr_##_name
CLASS_ATTR(_name, _mode, _show, _store) struct class_attribute class_attr_##_name
LIST_HEAD(name) struct list_head name
DEFINE_MUTEX(mutexname) struct mutex mutexname
DEFINE_TIMER(_name, _function, _expires, _data) struct timer_list _name
DECLARE_WORK(n, f) struct work_struct n
DEFINE_SPINLOCK(x) spinlock_t x
EXPORT_SYMBOL(sym)
EXPORT_SYMBOL_GPL(sym)
EXPORT_SYMBOL_GPL_FUTURE(sym)
DEFINE_IDA(name) struct ida name
DECLARE_RWSEM(name) struct rw_semaphore name
DECLARE_BITMAP(name,bits) unsigned long name[bits/32]
DEFINE_RWLOCK(x) rwlock_t x

精准导入需要的源文件

https://www.amobbs.com/forum.php?mod=viewthread&tid=5625887

设置宏定义的值

Project -> Default Project Settings -> Conditions:
image

或者:

Options->Preferences->Languages->Conditional Parsing:
image

下面这个工具可以根据内核的配置文件生成SI可以解析的配置,批量导入宏定义的值:
https://github.com/yeyuzhen/ConvertLinuxKernelConfig2SourceInsightConditionsXml

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

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

相关文章

error: Extra characters after test expression

问题:error: Extra characters after test expression 原因:在qt的pro文件中缺少 "/"

three

1. 扫描2. 访问http服务,并测试功能点联系方式留有电话和邮箱,得知target的域名 3. 寻找其他子域名 gobuster下的vhost模块能够枚举虚拟主机,尝试用不同的hostname发现服务器IP上其他host 使用方法如下: gobuster vhost -w /usr/share/seclists/Discovery/DNS/subdomains-to…

js Stream API简单使用

ReadableStream <script>// TextDecoder将字节转换为字符串,默认 utf-8 编码let uint8Array = new Uint8Array([72, 101, 108, 108, 111]);console.log(new TextDecoder().decode(uint8Array)); // Hellolet uint8Array1 = new Uint8Array([228, 189, 160, 229, 165, 189…

SDK实现广播的流程

其中APP:application 指应用程序 SD:softdevice    指蓝牙协议栈 SCANNER: 指扫描设备您的资助是我最大的动力!金额随意,欢迎来赏!如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。如果,您希望更容易地发现我的新博客,不妨点击一下绿色通…

ZBlogPHP提示非法访问,验证码不显示,验证码报错

针对您在 ZBlogPHP 升级后遇到的问题,以下是解决步骤:定位文件位置使用 FTP 客户端或者通过您的虚拟主机控制面板中的文件管理器找到 zb_users 目录。 打开 c_option.php 文件。修改配置选项在 c_option.php 文件中找到如下两行配置:phpZC_LOGIN_CSRFCHECK_ENABLE => tru…

【Java】若依框架(RuoYi-master)——8.文件上传

若依框架的自带上传和下载功能,但需要我们进行恰当的操作(具体也可以参考示例和源码)。新建表格 新建一张学生信息表(这里的字段、文件路径、文件名称与改说明相关):DROP TABLE IF EXISTS `sys_student`; CREATE TABLE `sys_student` (`student_id` int NOT NULL AUTO_I…

STP

STP简介STP 背景 传统拓扑环境,设备与设备之间只存在单条链路进行连接,就会产生单点故障的问题,为了解决单点故障问题,进行冗余环境的部署,但是冗余环境又会产生很多问题,造成环路,环路中又存在其他的问题:广播风暴、帧的多个副本、MAC地址表不稳定等 STP作用 STP:生成…

牛客周赛60

A 困难数学题一个数异或其本身就是0,直接输出0就好 B 构造序列正负数要相邻,那最长的序列肯定是数量最多的数放第一个,例3a2b ,a baba,ba为一组,最后结果为少的数的两倍+最开始的那个数,特判两数相等情况点击查看代码 ll a, b;cin >> a >> b;if (a < b){sw…

Ros2- Moveit2- Subrame( 子坐标 )

子坐标是在CollisionObjects上定义的坐标。 它们可用于定义您放置在场景中的对象上的兴趣点,例如瓶子的开口、螺丝刀的尖端或螺丝的头部。它们可用于规划和编写机器人指令,例如“拿起瓶子,然后将开口移到水龙头的喷口下方”,或“拿起螺丝刀,然后将其放在螺丝头上方”。 编…

精简实用!一分钟搭建文件管理服务!

Dufs —— 一款多功能的实用文件服务器。不仅支持静态文件的托管服务,还具备文件上传、搜索以及访问控制等功能,并且兼容 WebDAV 协议,支持 HTTPS 加密连接,保障了数据传输的安全性。大家好,我是 Java陈序员。 今天,给大家介绍一款精简实用的文件托管服务,一分钟即可搭建…

微信小程序wx.request请求封装

config.js // 请求地址 const BASE_URL = "https://localhost:8080" const TIMEOUT = 10000export {BASE_URL,TIMEOUT }server.js 假设这里返回的数据结构为 {"code": 0,"msg": "提示信息","data": "返回数据" }当…

[附源码]超简洁个人博客网站搭建+SpringBoot+Vue前后端分离

今天带来一款优秀的项目:个人博客系统源码 。 系统采用的流行的前后端分离结构,内含功能包括 "写博客文章",“修改博客文章”,“富文本编辑器”,“评论管理”“管理员角色”,“游客角色”,“文章标签”,“文章分类” 如果您有任何问题,也请联系小编,小编是…