这是 nccnavi 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
nccnav, nccnavi - 在文本模式控制台上探索 nccgen 的输出
概要
NCNAV [代码图]
纳克纳维 [代码图]
商品描述
本手册页简要记录了 NCNAV 命令可用于浏览
nccgen 在一组 C/C++ 文件上生成的输出。
指令 (模式 1)
第一次调用时,nccnav 将显示源文件列表。
箭头 键 / 页 up / 页 向下
可用于导航到所需文件
输入 选择一个文件并将用户带到模式 2
q 将用户带回上一屏幕
O 显示所选文件中所有函数的列表
AZ A-Z (除了 q)
将光标移动到以指定字符开头的函数
E 显示未被任何其他函数调用的所有函数的列表
G 显示所有全局变量的列表
指令 (模式 2)
此模式面向资源,资源可以是:文件、函数、全局变量、
结构的成员,结构
对于上述任何一项,都列出了所有相关资源。 例如,在一个
有:
1. 文件与定义(可能不存在)
2. 函数调用(蓝色)
3. 使用的全局变量(红色的)
4.
5. 调用的函数
暗灰色:不调用任何其他函数的函数。
Brown:调用其他函数的函数。
红色:递归检测器警报(如果启用)
6. 使用的结构成员(深灰色)
1-6
为该资源递归输入模式 2。
q 按 4 上的 Enter 键或键入“q”将返回上一屏幕。
BACKSPACE
带有 longjmp 的初始屏幕。
< 历史模式。
r 在红色 5 上按 'r' 可以进入展开模式。
m 在功能上按“m”将使您进入弹出模式
C 按 'C' 将运行 system("bash")
内部 源 查看器
紧迫在:
... a 结构体:
将提取并显示结构和声明文本。
... a 功能:
将显示包含在文件中的函数文本
功能定义。 为此,nccnav 必须位于正确的根目录中
目录或路径应该是绝对的。 ncc 选项 -ncfabs 是
有用。
请注意,如果一个函数报告要在多个文件中定义,
这可能会失败。 发生这种情况是因为 nccgen 不区分
具有相同名称的不同静态函数。 他们被认为是一样的
东西和他们的资源在nccnav中混合。 目前,如果 nccnav 检测到
一个函数的多个文件将发出警告。
... a 文件 in 时尚 2:
将显示整个文件的内容。
默认情况下,内部源查看器使用 减。 当通过调用 纳克纳维
命令,源代码自动缩进,通过less查看。
递归 探测器
默认情况下启用递归检测器。
它可以通过在模式 2 下按“R”来禁用。(它应该很贵,而且可能
令人困惑)
递归检测器在 MODE 2 下工作,如果当前资源是一个函数。 在这
如果它会将当前函数调用的所有函数涂成红色,这将
最终通过某种递归方式回到它。
在其中一个红色按钮上按 'r' 将显示可能的路径之一,通过该路径
递归可能发生。 目前无法查看替代路径。
在这种模式下,'q' 会让你回来,而 enter 将继续深入到模式 2 中
选定的资源。
POPUP MODE
这是浏览呼叫流程的另一种方式,通过按“m”进入
模式 2 中的功能。
生成弹出菜单,其中顶部元素是一个函数,其下方是所有元素
它调用的函数。 使用向上/向下箭头可以移动。
或 RIGHT 将为当前函数展开一个新的弹出窗口。 q 或 LEFT 将关闭
当前弹出窗口并激活上一个。 SPACE可以查看源码
码。
BACKSPACE 将关闭所有弹出窗口并返回到 MODE 2。
按“2”将进入当前选定元素的模式 2。 在这种情况下,历史
和 BACKSPACE 设置在此断点处。
历史 MODE
您可以随时按“<”和“>”浏览所有以前的屏幕。
其中之一将跳回该屏幕。 任何其他键都将退出历史模式。
例
假设您已经使用 nccgen 编译了 linux 内核。 收集所有 .nccout 文件
可以用:
发现 . -芋头 \*.ncout | 参数 猫 > 内核映射
您可以使用 pathremover 截断 `kernel.map' 中的长路径。
发现 . -芋头 \*.ncout | 参数 猫 | 路径去除剂 /mnt/src/hacks/linux-2.4.10/ > 内核映射
然后,这是查看:
NCNAV 内核映射
更多关于在 Linux 内核上使用 nccgen 的信息,请参考:
/usr/share/doc/ncc/hacking.LINUX-KERNEL
使用 onworks.net 服务在线使用 nccnavi