BPF类型格式(BTF)是元数据结构的集合。BTF可用来增强BPF程序、映射和函数的调试信息。BTF包含一些源信息,我们可以使用第5章中介绍的BPFTool工具,对BPF数据进行更详细的解释。元数据存储在二进制程序中特殊的“.BFT”部分。BTF信息使得程序更易于调试,但也会大大增加二进制文件的大小,因为需要对程序中声明的所有类型信息进行跟踪。BPF验证器也会使用该信息来确保定义的结构类型是正确的。
BTF仅用于注释C语言类型。BPF编译器(如LLVM)知道如何包含这些信息,因此我们无须做烦琐的工作将信息添加到每个结构上。但是,在某些情况下,工具链仍然需要一些注释来增强程序。在后面的章节中,我们将描述这些注释如何发挥作用,以及类似BPFTool的工具如何显示BTF信息。