当前位置:首页>Linux>硬核干货!一文读懂 Linux 内核 PID 与 Android PID/TID 映射奥秘 | 附真实 Native 崩溃实战分析

硬核干货!一文读懂 Linux 内核 PID 与 Android PID/TID 映射奥秘 | 附真实 Native 崩溃实战分析

  • 2026-08-25 11:12:06
硬核干货!一文读懂 Linux 内核 PID 与 Android PID/TID 映射奥秘 | 附真实 Native 崩溃实战分析

一、前言:致命信号引发的“身份谜局”

作为 Android 系统级开发者或 Native C++ 开发者,你是否在查看底层崩溃日志时,遇到过类似的困惑:

08-19 15:21:13.762735 10869 10869 I : potentially unexpected fatal signal 11.08-19 15:21:13.762743 10869 10869 I : CPU: 2 PID: 10869 Comm: Thread-7 Tainted: ...

等一下!日志中显示的崩溃实体名字叫 Thread-7,这明明是一个工作“线程”,但为什么内核日志却斩钉截铁地打印着 PID: 10869?这个 10869 到底是进程 ID 还是线程 ID?如果是线程,为什么它被称为 PID?如果是进程,那么原先的应用进程 ID(10024)又去哪儿了?

Linux 内核中错综复杂的“进程”与“线程”映射模型常常让座舱平台软件研发人员感到一头雾水。本文将通过底层原理解析配合真实的座舱 Native 崩溃案例,彻底揭开 Linux 内核 PID 与 Android 用户空间 PID/TID 之间的身份映射奥秘。

二、核心原理:内核的“Everything is a Task”哲学

在传统的教科书中,进程是资源分配的最小单位,线程是独立调度的最小单位。然而,在 Linux 内核的设计哲学中,并没有为线程单独创造一种独立的数据结构。内核的哲学非常极简:Everything is a task(一切执行流皆是任务)。

无论是多线程、还是单进程,在内核底层,其执行载体都是一个统一的 task_struct 结构体。每一个任务都是一个独立的调度实体。

为了满足用户空间标准的 POSIX 线程与进程语义,Linux 内核在进程控制块(task_struct)中引入了两个关键的标识字段:

1. task->pid (Task ID / 内核任务ID):

每一个独立的调度实体(即每个 task_struct)在创建时,都会被分配一个独一无二的 pid。即使是属于同一个进程的不同线程,它们在内核中的 task->pid 也各不相同。

2. task->tgid (Thread Group ID / 线程组ID):

为了将属于同一个进程的所有线程组织起来,内核引入了“线程组”的概念。同一进程下的所有线程(task_struct),它们所指向的 task->tgid 都是完全相同的,这个 tgid 就是该进程的主线程(Thread Group Leader)的内核 pid。

 Android/Linux 的**用户空间**(包括 Bionic libc、Logcat、ActivityManager 等),我们使用的概念与内核正好形成如下的映射:

⚫ 用户空间 PID (Process ID) = 内核空间 task->tgid

⚫ 用户空间 TID (Thread ID) = 内核空间 task->pid

这也就是为什么当内核抛出致命信号崩溃(Signal 11)时,内核打印出来的 PID: 10869 实质上对应 Android 用户空间的线程 TID 10869!

图:Diagram Pid Tgid

三、源码佐证:系统调用的映射逻辑

我们可以在底层的 Bionic C 库(Android 平台使用的 C 标准库)及内核源码中清晰地看到这一套映射关系。其核心系统调用 getpid() 和 gettid() 的底层映射机制如下:

// 1. Bionic Libc 的 getpid 接口定义// 对应内核系统调用 sys_getpid,内核返回的是当前任务的 tgid// 在底层,系统调用 sys_getpid() 返回的就是 current->tgidpid_t getpid() {    return syscall(__NR_getpid);}// 2. Bionic Libc 的 gettid 接口定义// 对应内核系统调用 sys_gettid,内核返回的是当前任务的独立 pid// 在底层,系统调用 sys_gettid() 返回的就是 current->pidpid_t gettid() {    return syscall(__NR_gettid);}

当我们调用系统的日志打印工具(例如 liblog 或内核 printk 等),或者通过进程分析工具 `/proc` 文件系统读取属性时,其显示的数据也是严格遵守这一底层映射架构。例如,进程状态对应的内核结构转换,可以通过读取 `/proc/<tid>/status` 直观展现:

cat /proc/10869/status | grep -E "Name|Pid|Tgid"输出内容展示:Name:   Thread-7Tgid:   10024    <-- 这就是用户空间的 PID (Process ID)Pid:    10869    <-- 这就是用户空间的 TID (Thread ID,但在内核眼里它是 pid)

四、实战案例:座舱系统应用的 Native 崩溃排查

下面我们结合一个座舱量产开发中的真实崩溃案例。在某次系统集成压力测试中,座舱测试团队发现系统出现异常重启(自愈),后台只留下了一条短促的内核致命异常信息:

--------- switch to kernel08-19 15:21:13.762735 10869 10869 I : potentially unexpected fatal signal 11.08-19 15:21:13.762743 10869 10869 I : CPU: 2 PID: 10869 Comm: Thread-7 Tainted: G ...

由于该崩溃是 Native 层的致命内存错误(Signal 11 即段错误,通常是由于野指针、空指针、或内存越界导致),且测试环境复杂,我们无法直观获取其 Java 堆栈。现在,我们将使用上述的 PID 映射原理,对该故障进行剥茧抽丝式的还原:

步骤 1:全日志搜索 TID,锁定应用包名

我们在未解压的系统 logcat 日志中全文搜索线索,重点寻找与该内核任务 pid 相同的用户空间进程。最终,在系统监视日志中我们找到了对应的执行实体:

15:17:27.948823 10024 10869 W cpasCocos: [, , 0]:boundary-remove: cutBoundariesInvalid = false15:17:29.985976   895   955 I system_monitor: Pss: 1055358 Rss: 1181012 e.cpas.voll (pid 10024)

从日志格式 `[进程PID = 10024] [线程TID = 10869]` 中可以极其清晰地确认:

⚫ 崩溃的后台线程正是 TID = 10869 的 C++ 任务,其注册的线程名字是 Thread-7。⚫ 该线程属于进程 PID = 10024,对应的 Android 应用程序包名为 ai.android.cpas.voll

步骤 2:分析崩溃发生时的上下文行为

在锁定了进程和线程后,我们需要知道该崩溃在发生前,系统和应用到底执行了什么操作。我们顺着时间线往前排查(15:21:13 左右):

08-19 15:21:13.283807 1787  1842 I wm_destroy_activity: [0,43495754,2134,ai.android.cpas.voll/ai.android.core.ui.MainActivity,finish-imm:recent-task-trimmed]08-19 15:21:13.444612  1787 17465 I MediaFocusControl: abandonAudioFocus() ... callingPack=ai.android.cpas.voll08-19 15:21:13.534016  1787  7553 I WindowManager: removeWindow: packages: ai.android.cpas.voll, windowName: b4aef1c, displayId: 008-19 15:21:13.534307  1787  7553 W InputManager-JNI: Input channel object was disposed without first being removed with the input manager!

这一段上下文清晰地揭示了应用在崩溃前发生的一系列链条事件:

1. 系统窗口管理器(WMS)在 15:21:13.283 触发了该系统应用的主 Activity 的注销销毁流(wm_destroy_activity)。2. 随后,该应用迅速退还了音频焦点(abandonAudioFocus),并且 WMS 移除了其主窗口(removeWindow)。3. 在 15:21:13.534 销毁窗口时,底层甚至抛出了 InputChannel 强行释放的警告。

步骤 3:还原故障,直击崩溃根因

在主 Activity 彻底被注销并移除了 Window 后的 200 毫秒(即 15:21:13.762),子工作线程 Thread-7 突然触发了段错误:

08-19 15:21:13.762735 10869 10869 I : potentially unexpected fatal signal 11.

随后由于该 Persistent 核心应用异常死亡,AMS 将其重新拉起:

08-19 15:21:14.001714 1787  7553 I ActivityManager: Process ai.android.cpas.voll (pid 10024) has died: pers PER08-19 15:21:14.062589  1787  1856 I am_proc_start: [0,9285,1000,ai.android.cpas.voll,restart,ai.android.cpas.voll]

这构成了一个经典的异步线程野指针崩溃场景:当 Activity 销毁、底层 Window 对应的 Surface 及 JNI 运行资源已被回收并释放时,跑 Cocos 渲染引擎逻辑的底层异步线程(Thread-7)并没有被同步安全挂起或停止退出,依然试图访问早已释放的 native 内存,直接导致了致命的 Signal 11(SIGSEGV)段错误!

图:Timeline Flow

五、座舱底层开发防崩溃最佳实践

上述案例充分说明,在智能座舱多任务、高强度的并发运行环境下,由于异步线程生命周期不规范导致的 Crash 屡见不鲜。为防止此类异步线程崩溃,建议遵循以下开发规范:

1. 严谨管理 Native 线程生命周期:

所有的 C++ 后台线程在 Activity 或 Surface 销毁时,必须在对应的 `onPause()` 或 `onDestroy()` 生命周期中执行安全的 `Stop()` 或 `Join()`,严禁在宿主容器被回收后让子线程“裸奔”。

2. 智能指针与弱引用护航:

 C++ 开发中,后台工作线程如果要访问宿主对象的成员变量,请务必使用智能指针的弱引用 `std::weak_ptr`,并在访问前通过 `lock()` 判定宿主是否依然存活。

3. JNI 接口环境校验:

JNI 开发中,当 C++ 回调 Java 接口时,必须先使用 `GetEnv()` 判定当前线程是否已附着到 JVM(Java Virtual Machine),若 JVM 已经或正在销毁,必须立即无条件安全退出线程。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-25 18:26:40 HTTP/2.0 GET : https://f.mffb.com.cn/a/512213.html
  2. 运行时间 : 0.232911s [ 吞吐率:4.29req/s ] 内存消耗:5,067.07kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=eb1b67f4686d1f5be825f7e1461b142f
  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.001065s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001719s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000768s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000697s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001392s ]
  6. SELECT * FROM `set` [ RunTime:0.000627s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001491s ]
  8. SELECT * FROM `article` WHERE `id` = 512213 LIMIT 1 [ RunTime:0.005395s ]
  9. UPDATE `article` SET `lasttime` = 1787653600 WHERE `id` = 512213 [ RunTime:0.026636s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000653s ]
  11. SELECT * FROM `article` WHERE `id` < 512213 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001304s ]
  12. SELECT * FROM `article` WHERE `id` > 512213 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001989s ]
  13. SELECT * FROM `article` WHERE `id` < 512213 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001920s ]
  14. SELECT * FROM `article` WHERE `id` < 512213 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002532s ]
  15. SELECT * FROM `article` WHERE `id` < 512213 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.021563s ]
0.236663s