当前位置:首页>Linux>【深度解析】: ARM Linux内核zImage链接脚本 (.lds)

【深度解析】: ARM Linux内核zImage链接脚本 (.lds)

  • 2026-04-02 05:43:06
【深度解析】: ARM Linux内核zImage链接脚本 (.lds)
Hello,大家好,我是程序媛MM。

本文约2500字,今天继续沿着《一份靠谱的BSP开发学习路线》来学习BSP开发所需的知识--ARM Linux内核zImage链接脚本 (.lds) 。本文基于 AX615 系列 ARM 芯片的内核zImage 链接脚本vmlinux.lds(在AX615系列 4.19.125版本的内核源码上该文件的完整名称是vmlinux.lds.S)来逐行分析语法、段定义、内核特殊逻辑,帮我们底掌握 ARM 内核链接脚本的核心原理。

关注公众号, 即可获得与Linux相关的电子书籍以及常用开发工具,文末有文档清单。


在 ARM 架构 Linux 内核编译流程中,.lds链接脚本是决定内核镜像内存布局段分配符号定义的核心文件,它直接指挥链接器(ld)将编译后的目标文件拼接成可执行的zImage内核镜像。

在编译完内核后,会生成除了内核镜像外,还会有一个vmlimux的文件,vmlinux.lds是蓝图 / 规则,vmlinux是按蓝图生成的最终内核可执行文件,二者是 “链接脚本->链接器->内核镜像”的直接生产关系。

一 前置知识:.lds 文件是什么?


全称:Linker Script(链接脚本),是 GNU 链接器ld的配置文件;

核心作用:定义程序的内存地址布局段(Section)分配规则全局符号输出格式

内核场景:ARM 内核的.lds分为两类 ——vmlinux.lds(主内核链接脚本)、zImage.lds(压缩内核镜像链接脚本),本文解析的是zImage 压缩解压阶段的专用链接脚本。

二 脚本整体结构概览


AX615系列内核的vmlinux.lds.S脚本是ARM 32 位小端/大端兼容的 zImage 链接脚本,核心分为 5 部分:

[1].大小端宏定义适配

[2].输出架构 / 入口点声明

[3].段定义(代码段、数据段、表段、压缩内核段等)

[4].全局符号定义(内核签名、起止地址等)

[5].断言校验 + 调试段声明

三 逐段深度解析


[1]. 大小端适配宏定义

#ifdef CONFIG_CPU_ENDIAN_BE8#define ZIMAGE_MAGIC(x) ( (((x) >> 24) & 0x000000ff) | \			  (((x) >>  8) & 0x0000ff00) | \			  (((x) <<  8) & 0x00ff0000) | \			  (((x) << 24) & 0xff000000) )#else#define ZIMAGE_MAGIC(x) (x)#endif

作用:适配 ARM CPU 的大端模式(BE8) 和小端模式(LE);

原理:大端模式下,32 位数据需要字节序反转,小端模式直接使用原值;

内核意义:zImage 的魔术字、地址信息必须和 CPU 端序一致,否则启动时无法识别。

[2]. 基础配置:输出架构 + 入口点

OUTPUT_ARCH(arm)ENTRY(_start)

OUTPUT_ARCH(arm):指定输出镜像的目标架构为ARM,链接器会校验目标文件的架构兼容性;

ENTRY(_start):定义镜像的入口函数为_start —— 这是 zImage 解压程序的第一条指令地址,CPU 复位后直接跳转到这里执行。

[3]. 关键段:/DISCARD/ 丢弃段

/DISCARD/ : {  *(.ARM.exidx*)  *(.ARM.extab*)  *(.data)}

这是 zImage 脚本最特殊的段,作用是强制丢弃指定段,链接器不会将这些段写入最终镜像:

.ARM.exidx*/.ARM.extab*:ARM 异常处理表,zImage 是纯解压程序,无需异常处理;

*(.data):强制丢弃所有读写数据段;

内核设计目的:zImage 解压阶段必须是PIC(位置无关代码),读写数据会产生 GOTOFF 重定位,导致无法独立重定位运行,丢弃后链接器会直接报错(强制约束)。

[4]. 代码段 .text 定义

. = TEXT_START;_text = .;.text : {  _start = .;  *(.start)  *(.text)  *(.text.*)  *(.fixup)  *(.gnu.warning)  *(.glue_7t)  *(.glue_7)}

. = TEXT_START;:将当前链接地址设置为内核文本段起始地址(TEXT_START是内核配置的宏,如 0x80008000);

_text = .;:定义全局符号_text,标记代码段起始地址;

.text段:收集所有目标文件的代码段,包含:

.start:启动汇编代码(_start入口);

.fixup:内核地址修复代码;

.glue_7/.glue_7t:ARM/Thumb 指令集切换胶水代码。

[5]. 核心表段 .table(zImage 识别标识)

.table : ALIGN(4) {  _table_start = .;  LONG(ZIMAGE_MAGIC(2))  LONG(ZIMAGE_MAGIC(0x5a534c4b))  LONG(ZIMAGE_MAGIC(__piggy_size_addr - _start))  LONG(ZIMAGE_MAGIC(_kernel_bss_size))  LONG(0)  _table_end = .;}

这是zImage 的核心标识表,Bootloader/CPU 通过这个表识别合法的内核镜像:

ALIGN(4):4 字节对齐(ARM32 位指令要求);

5 个 32 位长整型(LONG)核心字段:

2:zImage 版本号;

0x5a534c4b:魔术字(Magic),十六进制转 ASCII 为ZSLK,是 ARM zImage 的固定签名;

__piggy_size_addr - _start:压缩内核数据的偏移地址;

_kernel_bss_size:内核 BSS 段大小;

0:结束填充;

作用:启动时硬件 /bootloader 校验魔术字,确认这是合法的 ARM zImage。

[6]. 只读数据段 + 压缩内核数据段

.rodata : {  *(.rodata)  *(.rodata.*)  *(.data.rel.ro)}.piggydata : {  *(.piggydata)  __piggy_size_addr = . - 4;}

.rodata:存放只读常量(字符串、常量数组);

.piggydata:压缩内核数据段 —— 内核源码编译后会被 gzip 压缩,存放在这个段,是 zImage 的核心数据;

__piggy_size_addr = . -4:记录压缩数据的大小地址,供解压程序读取。

[7]. GOT 表(位置无关代码核心)

.got.plt		: { *(.got.plt) }_got_start = .;.got			: { *(.got) }_got_end = .;

GOT(Global Offset Table):全局偏移表,是PIC 位置无关代码的核心;

作用:zImage 运行时无需固定地址,通过 GOT 表动态计算函数 / 变量地址,适配任意内存地址加载。

[8]. EFI STUB 适配段(可选)

#ifdef CONFIG_EFI_STUB.data : ALIGN(4096) {  __pecoff_data_start = .;  *(.data.efistub)  __pecoff_data_end = .;  . = ALIGN(512);}#endif

仅当内核开启EFI_STUB时生效,适配 EFI 启动模式;

保留 EFI 存根的读写数据,4KB 对齐,满足 PE/COFF 镜像格式要求。

[9]. BSS 段 + 栈段(内存清零核心)

. = BSS_START;__bss_start = .;.bss			: { *(.bss) }_end = .;. = ALIGN(8);.stack		: { *(.stack) }

.bss:存放未初始化的全局变量 / 静态变量,内核启动时会自动清零这段内存;

.stack:解压程序的栈空间,强制 8 字节对齐(ARM64 位兼容要求);

BSS_START:BSS 段起始地址,由内核内存布局配置。

[10]. 内核魔术字符号(启动校验)

_magic_sig = ZIMAGE_MAGIC(0x016f2818);_magic_start = ZIMAGE_MAGIC(_start);_magic_end = ZIMAGE_MAGIC(_edata);_magic_table = ZIMAGE_MAGIC(_table_start - _start);

0x016f2818:ARM Linux 内核标准魔术字,所有 ARM 内核通用,是启动的核心校验值;

记录内核起止地址、表偏移,供启动程序解析内核镜像

[11]. 断言校验(防错机制)

ASSERT(_edata_real == _edata, "error: zImage file size is incorrect");

链接器最后校验:镜像实际结束地址必须等于预期结束地址;

若不相等,直接报错终止编译,避免生成损坏的 zImage。

四 内核.lds 文件核心特性总结


强约束 PIC:通过丢弃.data段,保证 zImage 是位置无关代码,可在任意内存地址运行;

大小端兼容:适配 AX615 芯片的大小端模式,魔术字自动字节序反转;

启动校验机制:通过固定魔术字、表段,让 Bootloader / 硬件识别合法内核;

内存布局严格对齐:ARM 架构要求指令 / 数据 4/8 字节对齐,脚本全流程保证对齐;

容错校验:断言机制避免生成错误镜像,提升编译可靠性。

五 实际开发中的应用场景


[1].内核移植:修改TEXT_START/BSS_START适配 AX615 芯片的内存映射;

[2].启动问题排查:zImage 无法启动时,优先检查.table魔术字、ENTRY(_start)入口地址;

[3].裁剪内核:通过/DISCARD/丢弃多余段,减小 zImage 体积;

[4].EFI 启动适配:开启CONFIG_EFI_STUB,无需修改脚本即可支持 EFI 启动。

六 关键知识点速记


[1]. .lds = 链接脚本,定义内核镜像内存布局;

[2]. ENTRY(_start):内核第一条指令地址;

[3]. /DISCARD/:强制丢弃段,保证 PIC 特性;

[4]. 0x5a534c4b/0x016f2818:ARM zImage 固定魔术字(不同芯片的内核版本有差异);

[5]. .piggydata:存放压缩后的内核数据;

[6].断言ASSERT:编译期校验,防止生成坏镜像。

总结


这份AX615 的.lds是ARM zImage 专用链接脚本,核心服务于内核解压阶段,约束内存布局、保证位置无关运行、实现启动校验;

大小端适配、段丢弃、魔术字定义是 ARM 内核链接脚本的三大核心设计;

内核移植、启动调试时,.lds是必看文件,所有内存地址、段规则都由它定义。

以上为全文内容。

往期文章(欢迎订阅技术分享栏目全部文章):

【从零开始撸内核驱动源码】:以ttyserial(串口驱动)为例,串联字符设备驱动基础知识点的学习计划
Linux内核源码顶层 Makefile分析并单独编译调试内核自带的驱动
【从零开始撸内核驱动源码】:ttynull驱动
Linux内核驱动安装失败问题调试及解决方法
Linux内核驱动源码走读之编译内核及外部驱动实操指南

谢谢你看到这里

这里是女程序员的笔记本

 15年+嵌入式软件工程师兼二胎宝妈

分享读书心得、工作经验,自我成长和生活方式。

希望我的文字能对你有所帮助

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-03 13:08:00 HTTP/2.0 GET : https://f.mffb.com.cn/a/483950.html
  2. 运行时间 : 0.131564s [ 吞吐率:7.60req/s ] 内存消耗:4,699.71kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d5dd5e1bb2f6e52e0ba87c86bbdd1e12
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000541s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000695s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000312s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000288s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000514s ]
  6. SELECT * FROM `set` [ RunTime:0.000249s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000562s ]
  8. SELECT * FROM `article` WHERE `id` = 483950 LIMIT 1 [ RunTime:0.003910s ]
  9. UPDATE `article` SET `lasttime` = 1775192881 WHERE `id` = 483950 [ RunTime:0.000827s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000278s ]
  11. SELECT * FROM `article` WHERE `id` < 483950 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001347s ]
  12. SELECT * FROM `article` WHERE `id` > 483950 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001694s ]
  13. SELECT * FROM `article` WHERE `id` < 483950 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.017648s ]
  14. SELECT * FROM `article` WHERE `id` < 483950 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.010866s ]
  15. SELECT * FROM `article` WHERE `id` < 483950 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.024914s ]
0.133177s