Ubuntu 安裝 GNU Global(gtags) 阅读Linux内核源码
CSDN | GitHub |
---|---|
Ubuntu 安裝 GNU Global(gtags) 阅读Linux内核源码 |
AderXCoding/system/tools/global
|
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作
因本人技术水平和知识面有限, 内容如有纰漏或者需要修正的地方, 欢迎大家指正, 也欢迎大家提供一些其他好的调试工具以供收录, 鄙人在此谢谢啦
1 Global 简介
1.1 背景
之前介绍过很多网页代码阅读工具了, 最近想看 Linux
内核代码, 本来想搭建一个 LXR
服务器.
Ubuntu14.04搭建LXR本地服务器阅读Linux内核代码
工具之OpenGrok的搭建方法
Ubuntu环境下OpenGrok的安装及使用
但是想到了公司内部使用的 GNU GLOBAL
搭建的服务器. 遂百度之. 发现搭建 GLOBAL
比 LXR
简单的多, 而且同样功能强大, 适合个人或者小团队阅读代码. 既然 LXR
这条路走不通, 那咱就换条路走走. 果断用 GLOBAL
替代 LXR
.
1.2 Global
摘要 : GNU GLOBAL
是一个源代码标记系统, 以同样的方式工作在不同的环境中, 如 Emacs
编辑器, Vi
编辑器, Less viewer
, Bash shell
, 以及各种 web
浏览器等等.
GNU GLOBAL
是一个源代码标记系统, 能够很方面的进行代码阅读和代码索引. GNU GLOBAL
以同样的方式工作在不同的环境中, 如 Emacs
编辑器, Vi
编辑器, Less viewer
, Bash shell
, 以及各种 web
浏览器等等
使用 GNU GLOBAL
, 在你的源代码中,你可以找到不同的对象并能够很轻松的移动它们, 如函数、宏、结构、类等. 这对大型项目非常有用, 特别是那种包含许多子目录, 许多 #ifdef
和很多 main( )
函数的项目.
它类似于 ctags
或 etag
, 但有两点不同 :
独立的编辑器
处理定义和参考的能力
GNU GLOBAL
可以运行在 UNIX (POSIX)
兼容的系统, 比如GNU
和 BSD
. GNU GLOBAL
支持的语言很多, 它自身支持 C, C++, Yacc, Java, PHP4
和汇编语言中符号的定义和引用, 还通过 Exuberant Ctags
支持 40
余种语言的符号定义的索引.
作为 GNU
项目的一部分, GNU GLOBAL
是免费软件, 你可以自由复制, 修改和重新发布该计划下的 GNU GPL
.
Unix/Linux
用户可以直接从仓库进行安装. 安装完不需要进行其它设置.
Windows
用户可以点击这里下载。
更多关于 GNU GLOBAL
的介绍请查看这里:
https://www.gnu.org/software/global/
2 安装
2.1 使用自带的源安装 global
sudo apt-get install global
2.2 编译安装global
Ubuntu 14.04
自带的 GLOBAL
版本是 5.7.1
但是官网都已经是 6.6
. 因此如果想用最新版的 GLOBAL
, 就需要自己编译安装.
- 安装编译依赖的库
sudo apt build-dep global
sudo apt install libncurses5-dev libncursesw5-dev
移驾至 GNU GLOBAL
官方下载最新的 tar.gz
包并解开.
wget https://ftp.gnu.org/pub/gnu/global/global-6.6.tar.gz
- 编译安装
./configure --with-sqlite3 # gtags可以使用Sqlite3作为数据库, 在编译时需要加这个参数
make -j4
sudo make install
3 使用 GLOBAL
假定接下来我们要生成 Linux Kernel
的解析 html
执行
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
当然也可以直接下载 linux kernel tar
包到本地后解压缩.
进入 Linux Kernel
所在的目录
- 执行
gtags
生成索引数据
# 生成tag文件
gtags –v
当然,也可以加上 --sqlite3
参数, 下面是 —help
给出的参数帮助信息.
Use Sqlite 3 API to make tag files. By default, BSD/DB 1.85 API is used.
To use this option, you need to invoke configure script with
--with-sqlite3 in the build phase.
tag
文件生成后, 执行 htags
命令生成 HTML
文件.
htags -DfFnva -m "指定main函数的名称" -t '这里填入你想要的主页title'
3.2 配置服务
GLOBAL
自带了一个 HTTP SERVER
, 可以直接使用 htags-server
启动
如果直接运行 htags-server
, 我发现外网无法访问我的 GLOBAL web
服务器, 看了下帮助文件, 执行以下代码 :
htags-server –b ip地址 端口号
如果不填端口号, 默认端口 8000
, 如果你要在 8080
端口打开服务, 好像要 sudo
, 否则报错, 不知何故.
如果希望使用 Apache
服务了来访问 web
服务, 则需要在 htags
的时候添加 -D
或者 -f
选项.
更多帮助信息,请参考—help或查阅官方文档。
官方文档:http://www.gnu.org/software/global/globaldoc.html
3.3 增量更新
GLOBAL 支持增量更新, global -u
这个命令会自动向上找到 project/GTAGS
, 并更新其内容. 而 gtags
的优势就在这里, 增量更新单个文件的速度极快, 几乎是瞬间完成.
global -vu
或者
gtags -iv
4 参考资料
GNU GLOBAL Source Code Tag System浏览源码,很方便
在Emacs中使用GNU Global阅读代码
vim中使用GNU Global
GNU Global源码分析工具使用笔记
介绍一下gnu global,比cscope更方便更快速的索引工具
Ubuntu 14.04 安裝最新版 gnu global (gtags)
本作品/博文 ( AderStep-紫夜阑珊-青伶巷草 Copyright ©2013-2017 ), 由 成坚(gatieme) 创作.
采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可. 欢迎转载、使用、重新发布, 但务必保留文章署名成坚gatieme ( 包含链接: http://blog.csdn.net/gatieme ), 不得用于商业目的.
基于本文修改后的作品务必以相同的许可发布. 如有任何疑问,请与我联系.
Ubuntu 安裝 GNU Global(gtags) 阅读Linux内核源码相关推荐
- 最小的linux内核代码,带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统...
要学习linux内核,先要能够编译内核,还需要了解内核如何启动根文件系统.这样你才能在修改linux内核代码之后,完成验证的过程. 本文教你完成下列过程: 1.下载linux并编译linux内核源码 ...
- Ubuntu 22.04.1 配置 LXR 阅读Linux kernel源码
配置环境 首先更新一下 $ sudo apt-get update 根据lxr的官方文档, 我们需要准备Perl,ctags $ sudo apt-get install perl universal ...
- 阅读 Linux 内核源码——共享内存
介绍 我看的是linux-4.2.3的源码.参考了<边干边学--Linux内核指导>(鬼畜的书名)第16章内容,他们用的是2.6.15的内核源码. 现在linux中可以使用共享内存的方式有 ...
- Linux账户标识R=400是什么意思_带你阅读linux内核源码:通俗讲解编译器、交叉编译器和大小端...
欢迎关注"技术简说",持续分享linux内核和驱动开发干货. 本文内容包括: 编译器和交叉编译器的介绍 交叉编译器的命名规则 如何交叉编译C代码 大端.小端的通俗讲解 如何判断你的 ...
- 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )
文章目录 一.arch 目录 二.block 目录 三.certs 目录 四.crypto 目录 五.Documentation 目录 在上一篇博客 [Linux 内核]Linux 内核源码结构 ( ...
- 【转载】ubuntu下linux内核源码阅读工具和调试方法总结
http://blog.chinaunix.net/space.php?uid=20940095&do=blog&cuid=2377369 一 linux内核源码阅读工具 window ...
- Linux内核源码阅读以及工具详解
接上篇Linux内核源码下载方法 这篇总结了如何利用source insight对Linux内核代码进行阅读和学习(资料来源于网络) 随着linux的逐步普及,现在有不少人对于Linux的安装及设置已 ...
- ubuntu下wget下载Linux内核源码、make生成.config文件
根据资料,如果要调试Linux内核源码,需要自己编译内核源码:原因是,一般下载的内核并不是为调试而编译的,要在编译时开启 "Compile the kernel with debug inf ...
- Linux内核源码阅读以及工具(转)
Linux内核源码阅读以及工具(转) 转载地址:Linux内核源码阅读以及工具(转)
最新文章
- 2022-2028年中国复合软管行业市场行情动态及发展趋向分析报告
- 这是入门生信,学习生信分析思路和数据可视化的首选?
- 调查:Android的领先地位稳固
- 微软将降低Visual Studio对操作系统的影响
- CometOJ-[Contest #10]鱼跃龙门【exgcd】
- shell 多个引号冲突_Html多个引号重叠使用冲突解决办法
- python知识点查阅
- 【精华版】cw2vec理论及其实现
- mysql查询4-6_MySQL学习(四)查询
- 企业架构皇冠上的明珠:TOGAF
- 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
- 【探路者】10月13日立会报告(团队第1周-第1次)
- 【推荐系统】Criteo数据集介绍
- 黑马程序员--技术网站网址2
- 网络营销---春节营销案例
- 读书寄语:感谢揭露你过失的人
- NFT为实体经济赋能
- ajax请求后新窗口打开,Ajax请求成功后打开新窗口地址
- Windows 10下安装Elementary OS双系统
- 普中科技手把手教你学ESP32--基于MicroPython-01
热门文章
- 用python计算准确率_机器学习之分类:准确率
- 京东毁约2019校招应届生:「面试官的嘴,骗人的鬼?」
- 解决Mac系统启动台图标顺序混乱的问题
- c语言中staloc是什么意思,C语言函数调用栈(三)
- web图书管理系统(HTML+CSS+JS+PHP)
- 循环神经网络(三)(常用循环神经网络,LSTM、GRU,文本生成)
- 薄膜涂层厚度在线测量仪|检测实时高效率
- 进一步理解抽象工厂模式——开闭原则
- linux以太网连接树莓派,树莓派 Zero USB/以太网方式连接配置教程,树莓zero
- 趣味密码学之一:从福尔摩斯的小人说起