source insight4.0 内核源码 __read_mostly 不识别问题解决
0.引用source insight c/c 宏定义无法识别_source insights代码关键字不识别-CSDN博客Token Macro Filessource insight 4.0中宏定义做为函数返回值时函数识别错误_sourceinsight 4.0无法识别func函数-CSDN博客1.解决问题默认SourceInsight4.0 不识别内核源码里 __read_mostly这样使用 __read_mostly 修饰的内核源码变量名可能不能被 SI4.0 正确的分析识别和跳转。询问 DeepSeek根据DeepSeek的提示和网上一些博客的文章说的解决方法都是说修改 SI4.0 的 C/C语言默认的 C.tom 文件在 C.tom 添加一个自己的宏定义。但是如何在 C.tom 里添加自己的宏定义都说的模模糊糊或者说是直接添加到 C.tom 文件的结尾的位置就可以但是我实际测试下来直接在 C.tom 文件的结尾添加上 __read_mostly 然后重启 SourceInsight4.0并且根据博客指示重新 rebuild 整个 project 工程SI4.0还是没有正确的识别 __read_mostly。1.1 尝试别人方案按照DeepSeek的提示和几个博客说的在 C.tom 文件的结尾直接添加上一行 ‘__read_mostly’ 然后重启 SourceInsight4.0并且根据博客指示重新 rebuild 整个 project 工程SI4.0还是没有正确的识别 __read_mostly。1.2 关键线索 C.tom 文件参数有分区继续搜索解决方案然后这个博客给我很大的提示source insight c/c 宏定义无法识别_source insights代码关键字不识别-CSDN博客这个博客说在 C.tom 里添加宏定义的时不是随便的添加到 C.tom 文件结尾位置的C.tom 文件实际上由一个结构的分为几个参数分片区如果需要添加宏定义到 C.tom 文件需要把宏名字写到 C.tom 的 Misc 分区。这个提示非常的关键它说明向C.tom文件添加 C/C 宏定义并不是随意的添加的C.tom文件结尾位置就可以的它需要被添加到 C.tom 文件里正确的参数分区里。我根据这个博客的提示在 SI4.0 的安装目录下 C:\Program Files (x86)\Source Insight 4.0 下修改 C.tom 文件在文件的 Misc 分区里加上了我需要的宏定义 __read_mostly。然后重启 SourceInsight4.0后SI4.0 就可以正确的识别出源码里的 __read_mostly 修饰的变量名了。1.3 进一步优化在上面第二步从别人博客获得关键提示里知道 C.tom 文件的参数是有分区的只有把宏的定义放到 C.tom 的 Misc 分区里重启SourceInsight4.0 后宏才能生效。直接任意的把宏名字放到 C.tom 文件的结尾经过我的测试是不能生效宏定义的。有了上面提示我分析了下 C.tom 文件的参数分区然后发现把 __read_mostly 作为宏声明放到 C.tom 的 Misc 分区里可以解决部分问题。但我发现 C.tom 文件有一个参数分区是定义 C/C 语言的 key 关键字把 __read_mostly 放到 C.tom 分区的 key 关键字分区里让SourceInsight4.0 把 __read_mostly 当成 C/C 语言的 key 关键字是一个更好的注意。把 __read_mostly 放到了 C.tom 文件的 Keywords 参数分区保存 C.tom 文件然后重启SourceInsight4.0对 C.tom 的修改生效了 SI4.0 正确解析了 __read_mostly 修饰的变量名并且效果更好。2.总结SourceInsight4.0 的 C/C 语言配置文件 C.tom 是一个格式化的有参数分区的文件如果要添加宏定义到 C.tom 文件不是随意的添加到 C.tom 文件的结尾就生效的需要添加到 C.tom 文件的正确的参数分区。如果要添加一个宏到 C.tom就把自己的的宏加到 C.tom 的 :Misc 参数分区加上一行。如果要添加一个自己的 C/C 语言关键字就把自己的关键字加到 C.tom 的 :Keywords 参数分区加上一行。对 SI4.0 的安装目录下 C:\Program Files (x86)\Source Insight 4.0 下 C.tom 的修改经过我的测试发现会被自动拷贝到用户的 C:\userData\xxx\Documents\Source Insight 4.0\ 目录下 C.tom。SI4.0 好像会自动同步这两个文件用安装目录下的 C.tom 覆盖用户 C:\userData 目录下的 C.tom。所以直接修改SI4.0 安装目录下的 C.tom 就可以了。

相关新闻

30行代码实现AI Agent核心:任务分解与工具调用机制详解

30行代码实现AI Agent核心:任务分解与工具调用机制详解

1. 先搞清楚Agent核心到底解决什么问题Agent的核心不是让AI变得更聪明,而是让AI能够按步骤使用工具完成任务。很多人一听到Agent就想到复杂的框架和算法,但实际最核心的机制就是:AI分析任务→选择工具→执行工具→整合结果→继续下一步。我用…

2026/7/23 9:20:55 阅读更多 →
gdb 常用指令

gdb 常用指令

gdb 常用指令 1. 功能描述 GDB(GNU Debugger)是 Linux 下最常用的 C/C 调试器,支持断点调试、变量查看、调用栈追踪、内存检查、多线程调试、远程调试和 Core Dump 分析。 1.1 核心能力能力说明断点调试行断点、函数断点、条件断点、临时断点…

2026/7/23 7:53:46 阅读更多 →
APP性能优化:HTTP DNS技术解析与美图实践

APP性能优化:HTTP DNS技术解析与美图实践

1. 为什么APP需要DNS优化?移动互联网时代,用户体验已经成为决定APP成败的关键因素。你可能不知道,用户在打开APP时,平均有15-20%的时间花费在DNS解析上。这个看似微小的环节,却直接影响着用户的第一印象。DNS解析就像是…

2026/7/23 8:11:38 阅读更多 →

最新新闻

AI Agent 的权限最小化:每个 agent 实例只拿到完成任务的最小权限集合

AI Agent 的权限最小化:每个 agent 实例只拿到完成任务的最小权限集合

AI Agent 的权限最小化:每个 agent 实例只拿到完成任务的最小权限集合 一、AI Agent 权限过多的灾难场景 先看一个真实可能发生的场景:你给 Agent 配了文件读取权限和 Shell 执行权限,让它帮你"分析 /var/log 下的日志,找出…

2026/7/23 14:22:55 阅读更多 →
UE4 GameInstance与GameMode实战:5大场景构建健壮游戏框架

UE4 GameInstance与GameMode实战:5大场景构建健壮游戏框架

1. 项目概述:为什么GameInstance和GameMode是UE4项目的“骨架”与“大脑”? 在UE4项目里摸爬滚打几年后,我发现很多开发者,尤其是刚入门的同学,对GameInstance和GameMode这两个核心类的理解常常停留在“知道有这么个东…

2026/7/23 14:22:55 阅读更多 →
Tokio TLS 实战:用 rustls 给异步服务加上传输层加密的完整示例

Tokio TLS 实战:用 rustls 给异步服务加上传输层加密的完整示例

Tokio TLS 实战:用 rustls 给异步服务加上传输层加密的完整示例 一、TLS 握手流程速览:先搞清楚在做什么 在撸代码之前,快速回顾一下 TLS 1.3 的握手过程。很多人搞不清楚这些概念就开始配,结果配错了都不知道。 为什么选 rust…

2026/7/23 14:22:55 阅读更多 →
深入解析ARM Cortex-M微控制器EPI主机总线:时序配置与外部存储器连接实战

深入解析ARM Cortex-M微控制器EPI主机总线:时序配置与外部存储器连接实战

1. 项目概述:为什么需要深入理解EPI主机总线? 在嵌入式系统开发中,尤其是基于Tiva™ C系列这类高性能ARM Cortex-M微控制器的项目,我们常常会遇到一个核心矛盾:片上存储资源有限,而应用需求(如图…

2026/7/23 14:22:55 阅读更多 →
视频弹幕音频处理技术:智能过滤与内容提取方案

视频弹幕音频处理技术:智能过滤与内容提取方案

这次我们来看一个专门处理视频中弹幕和音频内容的技术方案。这个项目主要解决的是在观看直播录像或视频时,如何有效去除无声弹幕并保留有价值信息的需求。特别是对于财经类、数据解读类的内容,精准的信息提取能大幅提升观看效率。 从项目标题可以看出&a…

2026/7/23 14:22:55 阅读更多 →
创世 SD NAND是什么?贴片式SD卡工业级选型全指南

创世 SD NAND是什么?贴片式SD卡工业级选型全指南

创世 SD NAND是近年来在工业控制、车载电子、医疗设备、物联网终端等领域快速普及的一种贴片式存储芯片,也常被称作贴片式TF卡、贴片式SD卡、SDFlash、工业级SD卡。它将传统SD卡的协议与功能,封装成可直接SMT贴片焊接的芯片形态,在体积、稳定…

2026/7/23 14:21:55 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻