乐于分享
好东西不私藏

自己动手构建系统软件-OP-TEE编译分析

自己动手构建系统软件-OP-TEE编译分析

仅仅是自动编译,不了解里面做了什么,使我们没法满意的。本章节我们分析一下OP-TEE的自动编译过程,理解它具体做了什么。

构建日志分析

  • 执行构建命令:
$ make -n FORCE_UNSAFE_CONFIGURE=1 GDBSERVER=y

接下来是从构建日志中提取的构建命令。

  • OP-TEE OS:
$ make -C /opt/sysdev/tee/optee/optee_os \O=out/arm \CFG_ARM64_core=y \PLATFORM=vexpress-qemu_armv8a \CROSS_COMPILE="/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu-" \CROSS_COMPILE_core="/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu-" \CROSS_COMPILE_ta_arm64="/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu-" \CROSS_COMPILE_ta_arm32="/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch32/bin/arm-linux-gnueabihf-" \CFG_TEE_CORE_LOG_LEVEL=3 \DEBUG=0 \CFG_TEE_BENCHMARK=n \DEBUG=0
  • EDK2:
export WORKSPACE=/opt/sysdev/tee/optee/edk2 PYTHON3_ENABLE=TRUE && \export PACKAGES_PATH=/opt/sysdev/tee/optee/edk2: && \source /opt/sysdev/tee/optee/edk2/edksetup.sh && \make -j1 -C /opt/sysdev/tee/optee/edk2/BaseTools && \GCC49_AARCH64_PREFIX=/opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu- \build -n `getconf _NPROCESSORS_ONLN` -a AARCH64 -t GCC49 -p ArmVirtPkg/ArmVirtQemuKernel.dsc -b RELEASE all
  • ATF:
$ CROSS_COMPILE="/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu-" \make -C /opt/sysdev/tee/optee/trusted-firmware-a \BL32=/opt/sysdev/tee/optee/optee_os/out/arm/core/tee-header_v2.bin \BL32_EXTRA1=/opt/sysdev/tee/optee/optee_os/out/arm/core/tee-pager_v2.bin \BL32_EXTRA2=/opt/sysdev/tee/optee/optee_os/out/arm/core/tee-pageable_v2.bin \BL33=/opt/sysdev/tee/optee/edk2/Build/ArmVirtQemuKernel-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd \PLAT=qemu \ARM_TSP_RAM_LOCATION=tdram \BL32_RAM_LOCATION=tdram \SPD=opteed DEBUG=0 LOG_LEVEL=30 all fip
  • BuildRoot:
echo'BR2_PACKAGE_OPTEE_TEST_EXT_CROSS_COMPILE="'"/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu-"'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_LIBOPENSSL='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_STRACE='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_TEST_EXT_WITH_CXX_TESTS='y'' >>../out-br/extra.conf; \echo'BR2_ROOTFS_POST_BUILD_SCRIPT="'/opt/sysdev/tee/optee/build/br-ext/board/qemu/post-build.sh'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_OS_EXT_SITE="'/opt/develop/sysdev/tee/optee/build/br-ext/package/optee_os_ext'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_OS_EXT='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_OS_EXT_SDK="'/opt/sysdev/tee/optee/optee_os/out/arm/export-ta_arm64'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SDK="'/opt/sysdev/tee/optee/optee_os/out/arm/export-ta_arm64'"' >>../out-br/extra.conf; \echo'BR2_ROOTFS_POST_SCRIPT_ARGS="'"n /mnt/host n"'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_MMC_UTILS='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_EXAMPLES_EXT_CROSS_COMPILE="'"/usr/bin/ccache /opt/sysdev/tee/optee/toolchains/aarch64/bin/aarch64-linux-gnu-"'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_TEST_EXT_SITE="'/opt/sysdev/tee/optee/optee_test'"' >>../out-br/extra.conf; echo'BR2_PACKAGE_OPTEE_TEST_EXT='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_TEST_EXT_SDK="'/opt/sysdev/tee/optee/optee_os/out/arm/export-ta_arm64'"' >>../out-br/extra.conf; \echo'BR2_ROOTFS_OVERLAY="'/opt/sysdev/tee/optee/build/br-ext/board/qemu/overlay'"' >>../out-br/extra.conf; \echo'BR2_TARGET_GENERIC_GETTY_PORT="'ttyAMA0'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_TEST_EXT_GP_PACKAGE="''"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPENSC='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPENSSL='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_TEST_EXT_WITH_TLS_TESTS='y'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_BENCHMARK_EXT_SITE="''"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_BENCHMARK_EXT='n'' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_CLIENT_EXT_SITE="'/opt/sysdev/tee/optee/optee_client'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SITE="'/opt/sysdev/tee/optee/optee_examples'"' >>../out-br/extra.conf; \echo'BR2_PACKAGE_OPTEE_EXAMPLES_EXT='y'' >>../out-br/extra.conf;(cd .. && python build/br-ext/scripts/make_def_config.py \ --br buildroot --out out-br --br-ext build/br-ext \ --top-dir "/opt/sysdev/tee/optee" \ --br-defconfig build/br-ext/configs/optee_aarch64 \ --br-defconfig build/br-ext/configs/optee_generic \ --br-defconfig build/br-ext/configs/toolchain-br  \ --br-defconfig build/br-ext/configs/gdbserver.conf \ --br-defconfig out-br/extra.conf \ --make-cmd make)make[1]: Entering directory `/opt/develop/sysdev/tee/optee/buildroot'umask 0022 && \ make -C /opt/develop/sysdev/tee/optee/buildroot --no-print-directory \  defconfig O=/opt/develop/sysdev/tee/optee/out-br/opt/develop/sysdev/tee/optee/buildroot/support/scripts/mkmakefile /opt/develop/sysdev/tee/optee/buildroot /opt/develop/sysdev/tee/optee/out-brBR2_DEFCONFIG='../out-br/defconfig' KCONFIG_AUTOCONFIG=/opt/develop/sysdev/tee/optee/out-br/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/opt/develop/sysdev/tee/optee/out-br/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/opt/develop/sysdev/tee/optee/out-br/build/buildroot-config/tristate.config BR2_CONFIG=/opt/develop/sysdev/tee/optee/out-br/.config HOST_GCC_VERSION="4 8" BASE_DIR=/opt/develop/sysdev/tee/optee/out-br SKIP_LEGACY= /opt/develop/sysdev/tee/optee/out-br/build/buildroot-config/conf --defconfig=../out-br/defconfig Config.in:make[1]: Leaving directory `/opt/develop/sysdev/tee/optee/buildroot'make -C ../out-br allmake[1]: Entering directory `/opt/develop/sysdev/tee/optee/out-br'umask 0022 && make -C /opt/develop/sysdev/tee/optee/buildroot O=/opt/develop/sysdev/tee/optee/out-br/. allMAKE="/usr/bin/make -j3" DL_TOOLS="bzcat git gzip xzcat" \...

使用fip镜像

# https://trustedfirmware-a.readthedocs.io/en/latest/plat/qemu.html# https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/tools-build.html$ make run QEMU_USERNET_ENABLE=y FORCE_UNSAFE_CONFIGURE=1...tools/fiptool/fiptool create --tos-fw-extra1 /opt/sysdev/tee/optee/optee_os/out/arm/core/tee-pager_v2.bin --tos-fw-extra2 /opt/sysdev/tee/optee/optee_os/out/arm/core/tee-pageable_v2.bin --tb-fw ./build/qemu/release/bl2.bin --soc-fw ./build/qemu/release/bl31.bin --tos-fw /opt/sysdev/tee/optee/optee_os/out/arm/core/tee-header_v2.bin --nt-fw /opt/sysdev/tee/optee/edk2/Build/ArmVirtQemuKernel-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd build/qemu/release/fip.bintools/fiptool/fiptool info build/qemu/release/fip.bin$ make run-only QEMU_USERNET_ENABLE=y QEMU_VIRTFS_ENABLE=y QEMU_VIRTFS_HOST_DIR=/optcd /opt/sysdev/tee/optee/out/bin && /opt/sysdev/tee/optee/qemu/aarch64-softmmu/qemu-system-aarch64 \ -nographic \ -serial mon:stdio \ -serial tcp::45457,server,nowait \ -smp 2 \ -machine virt,secure=on -cpu cortex-a57 \ -d unimp -semihosting-config enable,target=native \ -m 1057 \ -bios bl1.bin \ -initrd rootfs.cpio.gz \ -kernel Image -no-acpi \ -append 'console=ttyAMA0,38400 keep_bootcon root=/dev/vda2' \ -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0,max-bytes=1024,period=1000 -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic# UART1Host $ telnet localhost 45457
  • 查看生成的安全程序:
$ gunzip -c rootfs.cpio.gz > rootfs.cpio$ mkdir rootfs && cd rootfs$ cpio -i -F rootfs.cpio --no-absolute-filenamecd -$ find rootfs -name "*.ta"rootfs/lib/optee_armtz/cb3e5ba0-adf1-11e0-998b-0002a5d5c51b.tarootfs/lib/optee_armtz/5dbac793-f574-4871-8ad3-04331ec17f24.tarootfs/lib/optee_armtz/8aaaf200-2450-11e4-abe2-0002a5d5c51b.tarootfs/lib/optee_armtz/e13010e0-2ae1-11e5-896a-0002a5d5c51b.tarootfs/lib/optee_armtz/528938ce-fc59-11e8-8eb2-f2801f1b9fd1.ta...$ find rootfs -name "optee_*"rootfs/lib/optee_armtzrootfs/usr/bin/optee_example_randomrootfs/usr/bin/optee_example_hotprootfs/usr/bin/optee_example_acipherrootfs/usr/bin/optee_example_aesrootfs/usr/bin/optee_example_hello_worldrootfs/usr/bin/optee_example_pluginsrootfs/usr/bin/optee_example_secure_storage
  • 创建并启动fip镜像:
$ /opt/sysdev/tee/optee/trusted-firmware-a/tools/fiptool/fiptool create \--tb-fw /opt/sysdev/tee/optee/trusted-firmware-a/build/qemu/release/bl2.bin \--soc-fw /opt/sysdev/tee/optee/trusted-firmware-a/build/qemu/release/bl31.bin \--tos-fw /opt/sysdev/tee/optee/optee_os/out/arm/core/tee-header_v2.bin \--tos-fw-extra1 /opt/sysdev/tee/optee/optee_os/out/arm/core/tee-pager_v2.bin \--tos-fw-extra2 /opt/sysdev/tee/optee/optee_os/out/arm/core/tee-pageable_v2.bin \--nt-fw piccolo.bin \fip_piccolo.bin$ dd if=fip_piccolo.bin of=flash.bin seek=64 bs=4096 conv=notrunc$ qemu-system-aarch64 -serial mon:stdio -serial tcp::45457,server,nowait -nographic \ -machine virt,virtualization=true,secure=on -cpu cortex-a57 -smp 2 -m 1057 -no-acpi \ -bios flash.bin \ -d unimp -semihosting-config enable,target=native \ -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic

查看镜像内容

$ /opt/sysdev/tee/optee/trusted-firmware-a/tools/fiptool/fiptool info fip_piccolo.binTrusted Boot Firmware BL2: offset=0x128, size=0x6409, cmdline="--tb-fw"EL3 Runtime Firmware BL31: offset=0x6531, size=0x806C, cmdline="--soc-fw"Secure Payload BL32 (Trusted OS): offset=0xE59D, size=0x1C, cmdline="--tos-fw"Secure Payload BL32 Extra1 (Trusted OS Extra1): offset=0xE5B9, size=0x62990, cmdline="--tos-fw-extra1"Secure Payload BL32 Extra2 (Trusted OS Extra2): offset=0x70F49, size=0x0, cmdline="--tos-fw-extra2"Non-Trusted Firmware BL33: offset=0x70F49, size=0xE5A, cmdline="--nt-fw"

查看Repo仓库

$ cat .repo/manifest.xml <?xml version="1.0" encoding="UTF-8"?><!--DO NOT EDIT THIS FILE!  It is generated by repo and changes will be discarded.If you want to use a different manifest, use `repo init -m <file>` instead.If you want to customize your checkout by overriding manifest settings, usethe local_manifests/ directory instead.For more information on repo manifests, check out:https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md--><manifest>  <include name="qemu_v8.xml" /></manifest>$ cat .repo/manifests/qemu_v8.xml <?xml version="1.0" encoding="UTF-8"?><manifest>        <remote name="github"   fetch="https://github.com" />        <remote name="tfo"      fetch="https://git.trustedfirmware.org" />        <default remote="github" revision="master" />        <!-- OP-TEE gits -->        <project path="optee_client"         name="OP-TEE/optee_client.git" />        <project path="optee_os"             name="OP-TEE/optee_os.git" />        <project path="optee_test"           name="OP-TEE/optee_test.git" />        <project path="build"                name="OP-TEE/build.git">                <linkfile src="qemu_v8.mk" dest="build/Makefile" />        </project>        <!-- linaro-swg gits -->        <project path="linux"                name="linaro-swg/linux.git" revision="optee"clone-depth="1" />        <project path="optee_benchmark"      name="linaro-swg/optee_benchmark.git"/>        <project path="optee_examples"       name="linaro-swg/optee_examples.git" />        <project path="soc_term"             name="linaro-swg/soc_term.git" />        <!-- Misc gits -->        <project path="buildroot"            name="buildroot/buildroot.git"               revision="refs/tags/2020.08"clone-depth="1" />        <project path="edk2"                 name="tianocore/edk2.git"                    revision="refs/tags/edk2-stable201905" sync-s="true" />        <project path="mbedtls"              name="ARMmbed/mbedtls.git"                   revision="refs/tags/mbedtls-2.16.0"clone-depth="1" />        <project path="qemu"                 name="qemu/qemu.git"                         revision="refs/tags/v5.1.0"clone-depth="1" />        <project path="trusted-firmware-a"   name="TF-A/trusted-firmware-a.git"           revision="refs/tags/v2.3"clone-depth="1" remote="tfo" /></manifest>$ ls -lh build | grep qemulrwxrwxrwx 1 root root   10 Feb 24 18:09 Makefile -> qemu_v8.mk-rw-r--r-- 1 root root 3.3K Feb 24 18:09 qemu-check.exp-rw-r--r-- 1 root root 6.6K Feb 24 18:09 qemu.mk-rw-r--r-- 1 root root 7.6K Feb 24 18:09 qemu_v8.mk

测试镜像加载

$ mkdir -pv ${SYSDEV_ROOT}/tee/target && cd${SYSDEV_ROOT}/tee/target$ cp ../optee/out/bin/bl1.bin .$ cp ../optee/out/bin/bl{1,2}.bin .$ cp ../optee/out/bin/bl3{1,2}.bin .$ cp ../optee/out/bin/bl3{2_*,3}.bin .$ cp ../optee/out/bin/Image .$ cp ../optee/out/bin/rootfs.cpio.gz .$ qemu-system-aarch64 -nographic -machine virt,secure=on -cpu cortex-a57 -smp 2 -m 1057 \ -bios bl1.bin \ -kernel Image \ -initrd rootfs.cpio.gz \ -serial mon:stdio \ -d unimp -semihosting-config enable,target=native \ -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic...Saving random seed: [  112.863869] random: dd: uninitialized urandom read (512 bytes read)OKSet permissions on /dev/tee*: chown: /dev/teepriv0: No such file or directoryFAILStarting network: OKStarting network (udhcpc): OKWelcome to Buildroot, type root or test to loginbuildroot login: root

如果喜欢,请麻烦点个关注,会更快的更新!

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