当前位置:首页>Linux>Linux Execve

Linux Execve

  • 2026-04-16 15:55:58
Linux Execve

Execve Service (Process Execution)

Overview

The execve service implements the POSIX execve() system call and related execution mechanisms in the Linux kernel. It is responsible for replacing the current process image with a new executable, handling binary format detection, credential management, memory layout, and security checks.

Locationfs/exec.c (primary), architecture-specific syscall wrappersCategory: Process Management / System CallsKey Files: fs/exec.c, include/linux/binfmts.h, fs/binfmt_elf.cDependencies: Security subsystem, MM subsystem, Credential management, Binary format handlers


Purpose

The execve system enables:

  • Process image replacement - Load and execute a new program in the current process context
  • Binary format abstraction - Support multiple executable formats (ELF, scripts, misc)
  • Security enforcement - SUID/SGID handling, LSM checks, capability transitions
  • Memory management - Stack setup, argument/environment copying, ASLR
  • Credential transitions - UID/GID changes based on file permissions
  • Namespace support - PID namespace handling during exec

Architecture

Execution Flow

User Space: execve(path, argv, envp)
    ↓
Syscall Entry: SYSCALL_DEFINE3(execve, ...)
    ↓
do_execve() → do_execveat_common(AT_FDCWD, ...)
    ↓
1. Validation & Setup
   - Check RLIMIT_NPROC
   - Allocate linux_binprm structure
   - Count and validate argc/envc
    ↓
2. Argument/Environment Copying
   - copy_string_kernel(filename)
   - copy_strings(envc, envp)
   - copy_strings(argc, argv)
   - Handle empty argv edge case
    ↓
3. bprm_execve(bprm)
   ├─ prepare_bprm_creds() - Setup credentials
   ├─ check_unsafe_exec() - Security validation
   ├─ current->in_execve = 1
   ├─ sched_exec() - CPU migration optimization
   ├─ security_bprm_creds_for_exec() - LSM hook
   └─ exec_binprm(bprm)
       └─ search_binary_handler(bprm)
           └─ Iterate registered binfmt handlers
               └─ fmt->load_binary(bprm) [e.g., load_elf_binary]
                   └─ begin_new_exec(bprm) [Point of no return]
    ↓
4. Post-Execution Cleanup
   - sched_mm_cid_after_execve()
   - rseq_execve()
   - current->in_execve = 0
   - user_events_execve()
   - acct_update_integrals()
   - task_numa_free()

Binary Format Handler Chain

search_binary_handler()
    ↓
Iterate through registered formats:
    1. binfmt_script (#! interpreter)
    2. binfmt_elf (ELF binaries)
    3. binfmt_misc (Custom handlers)
    4. binfmt_flat (Flat binaries, embedded)
    ↓
First successful load_binary() wins
    ↓
If interpreter needed (scripts):
    Recursively call exec_binprm() with interpreter
    Max depth: 5 levels (prevents infinite loops)

Key Data Structures

struct linux_binprm

Core structure holding execution parameters throughout the exec process.

struct linux_binprm {
    // Memory management
    struct vm_area_struct *vma;          // VMA for argument stack
    unsigned long vma_pages;
    unsigned long argmin;                // Stack limit marker
    struct mm_struct *mm;
    unsigned long p;                     // Current top of memory

    // Flags
    unsigned int
        have_execfd:1,                   // Exec fd passed to userspace
        execfd_creds:1,                  // Use script creds (binfmt_misc)
        secureexec:1,                    // Privilege-gaining exec occurred
        point_of_no_return:1,            // Cannot return errors to userspace
        comm_from_dentry:1,              // Comm from dentry
        is_check:1;                      // Check executability only

    // File references
    struct file *executable;             // Executable file
    struct file *interpreter;            // Interpreter (for scripts)
    struct file *file;                   // Current binary file

    // Credentials
    struct cred *cred;                   // New credentials
    int unsafe;                          // LSM_UNSAFE_* mask
    unsigned int per_clear;              // Personality bits to clear

    // Arguments
    int argc, envc;                      // Argument/environment counts
    const char *filename;                // Binary name (for procps)
    const char *interp;                  // Actual executed binary
    const char *fdpath;                  // Generated path for execveat

    // Execution state
    unsigned interp_flags;
    int execfd;                          // Executable file descriptor
    unsigned long exec;                  // Entry point address

    // Resource limits
    struct rlimit rlim_stack;            // Saved RLIMIT_STACK

    // Magic number buffer (first 128 bytes of file)
    char buf[BINPRM_BUF_SIZE];
};

struct linux_binfmt

Binary format handler interface.

struct linux_binfmt {
    struct list_head lh;                 // Linked list node
    struct module *module;               // Owning module
    int (*load_binary)(struct linux_binprm *);  // Load handler
#ifdef CONFIG_COREDUMP
    int (*core_dump)(struct coredump_params *); // Core dump handler
    unsigned long min_coredump;          // Minimum core dump size
#endif
};

System Call Interface

Primary Syscalls

execve(const char *filename, char *const argv[], char *const envp[])

Standard POSIX execve implementation.

Parameters:

  • filename: Path to executable
  • argv: NULL-terminated argument array
  • envp: NULL-terminated environment array

Implementation:

SYSCALL_DEFINE3(execve,
    const char __user *, filename,
    const char __user *const __user *, argv,
    const char __user *const __user *, envp)
{
    return do_execve(getname(filename), argv, envp);
}

execveat(int fd, const char *filename, char *const argv[], char *const envp[], int flags)

Extended version supporting relative paths and additional flags.

Flags:

  • AT_EMPTY_PATH: Allow empty filename (operate on fd directly)
  • AT_SYMLINK_NOFOLLOW: Don't follow symlinks

Implementation:

SYSCALL_DEFINE5(execveat,
    int, fd, const char __user *, filename,
    const char __user *const __user *, argv,
    const char __user *const __user *, envp,
    int, flags)
{
    return do_execveat(fd, getname_uflags(filename, flags), argv, envp, flags);
}

Compatibility Syscalls

For 32-bit compatibility on 64-bit kernels:

  • COMPAT_SYSCALL_DEFINE3(execve, ...)
  • COMPAT_SYSCALL_DEFINE5(execveat, ...)

Kernel Internal API

kernel_execve(const char *filename, const char *const *argv, const char *const *envp)

Execute a program from kernel space (e.g., init process, hotplug helpers).

Restrictions:

  • Cannot be called from kernel threads (PF_KTHREAD)
  • Uses kernel pointers instead of user pointers

Binary Format Handlers

Registered Formats

Format

Handler

Module

Description

ELF

load_elf_binary

binfmt_elf

Standard ELF executables

Script

load_script

binfmt_script

#! interpreter scripts

Misc

load_misc_binary

binfmt_misc

Custom format handlers

Flat

load_flat_binary

binfmt_flat

Flat binaries (embedded)

ELF FDPIC

load_elf_fdpic_binary

binfmt_elf_fdpic

ELF with FDPIC (MMU-less)

Registration API

// Register at end of list (lower priority)
void register_binfmt(struct linux_binfmt *fmt);

// Insert at beginning (higher priority)
void insert_binfmt(struct linux_binfmt *fmt);

// Unregister format
void unregister_binfmt(struct linux_binfmt *fmt);

Example (from binfmt_elf.c):

static struct linux_binfmt elf_format = {
    .module     = THIS_MODULE,
    .load_binary = load_elf_binary,
#ifdef CONFIG_COREDUMP
    .core_dump  = elf_core_dump,
    .min_coredump = ELF_EXEC_PAGESIZE,
#endif
};

static int __init init_elf_binfmt(void)
{
    register_binfmt(&elf_format);
    return 0;
}

Security Mechanisms

Credential Transitions

Execve handles privilege changes based on file permissions:

  1. SUID/SGID Detection:
    • Check executable's setuid/setgid bits
    • Validate filesystem supports SUID (nosuid mount check)
    • Apply new UID/GID from file ownership
  1. Capability Handling:
    • File capabilities (if supported by filesystem)
    • Ambient capability inheritance
    • Securebits preservation
  1. LSM Hooks:
security_bprm_check(bprm);              // Pre-execution check
security_bprm_creds_for_exec(bprm);     // Credential setup
security_bprm_committing_creds(bprm);   // Before committing
security_bprm_committed_creds(bprm);    // After committing

Unsafe Execution States

Tracked via bprm->unsafe flags:

Flag

Meaning

LSM_UNSAFE_SHARE

Sharing mm with another process

LSM_UNSAFE_PTRACE

Process is being ptraced

LSM_UNSAFE_NO_NEW_PRIVS

No-new-privs bit set

When unsafe states detected:

  • SUID/SGID bits ignored
  • File capabilities dropped
  • AT_SECURE auxv flag set for glibc

Point of No Return

After begin_new_exec() succeeds:

  • Old process image destroyed
  • Cannot return errors to userspace
  • Fatal signal (SIGSEGV) if subsequent failure occurs
  • Traced via bprm->point_of_no_return

Memory Management

Argument Stack Layout

High Addresses
┌─────────────────────┐
│  Environment Strings │ ← envp[0], envp[1], ...
├─────────────────────┤
│  Argument Strings    │ ← argv[0], argv[1], ...
├─────────────────────┤
│  Filename String     │ ← Program path
├─────────────────────┤
│  Auxiliary Vector    │ ← AT_ENTRY, AT_PHDR, etc.
├─────────────────────┤
│  Environment Pointers│ ← envp[] array + NULL
├─────────────────────┤
│  Argument Pointers   │ ← argv[] array + NULL
├─────────────────────┤
│  Argument Count      │ ← argc
├─────────────────────┤
Low Addresses

Stack Limits

  • Maximum argument stringsMAX_ARG_STRINGS (typically 2^31)
  • Maximum string lengthMAX_ARG_STRLEN (PAGE_SIZE * 32)
  • Stack expansion: Limited by RLIMIT_STACK
  • Guard page: Prevents stack overflow into other regions

ASLR (Address Space Layout Randomization)

Randomization applied to:

  • Stack base address
  • Mmap base address
  • VDSO location
  • Executable base (PIE binaries)

Controlled via:

  • /proc/sys/kernel/randomize_va_space
  • personality(ADDR_NO_RANDOMIZE) flag

Key Functions

Core Execution Functions

do_execveat_common()

Main entry point for all exec variants.

Responsibilities:

  1. Validate filename and resource limits
  2. Allocate and initialize linux_binprm
  3. Count and copy arguments/environment
  4. Handle empty argv edge case
  5. Call bprm_execve()

bprm_execve()

Orchestrate the execution process.

Flow:

prepare_bprm_creds(bprm);
check_unsafe_exec(bprm);
current->in_execve = 1;
sched_exec();
security_bprm_creds_for_exec(bprm);
exec_binprm(bprm);  // May not return on success
// Post-exec cleanup on failure

exec_binprm()

Search for and invoke appropriate binary format handler.

Features:

  • Iterates through registered formats
  • Handles interpreter chains (scripts)
  • Maximum recursion depth: 5 levels
  • Audit and tracing integration

search_binary_handler()

Try each registered binary format until one succeeds.

Algorithm:

read_lock(&binfmt_lock);
list_for_each_entry(fmt, &formats, lh) {
    if (!try_module_get(fmt->module))
        continue;
    read_unlock(&binfmt_lock);

    retval = fmt->load_binary(bprm);

    read_lock(&binfmt_lock);
    put_binfmt(fmt);
    if (retval != -ENOEXEC)
        return retval;
}
return -ENOEXEC;

Helper Functions

Function

Purpose

alloc_bprm()

Allocate and initialize linux_binprm

free_bprm()

Free bprm resources

copy_strings()

Copy user-space strings to kernel

copy_string_kernel()

Copy kernel-space string

count()

Count NULL-terminated string array

begin_new_exec()

Commit to new executable (point of no return)

setup_new_exec()

Setup memory layout for new executable

finalize_exec()

Final post-exec cleanup

set_binfmt()

Set current mm's binary format


Lifecycle Phases

Phase 1: Preparation

  1. Validation:
    • Check filename validity
    • Verify RLIMIT_NPROC not exceeded
    • Clear PF_NPROC_EXCEEDED flag
  1. Allocation:
    • Allocate linux_binprm structure
    • Read first 128 bytes of executable (magic number detection)
    • Open executable file
  1. Counting:
    • Count argc and envc
    • Validate against MAX_ARG_STRINGS
    • Calculate stack requirements

Phase 2: Copying

  1. String Copying:
    • Copy filename to bprm stack
    • Copy environment strings
    • Copy argument strings
    • Handle empty argv (add "" as argv[0])
  1. Stack Setup:
    • Create temporary VMA for argument stack
    • Track current stack pointer (bprm->p)
    • Enforce stack limits

Phase 3: Execution

  1. Credential Preparation:
    • Prepare new credentials
    • Check for unsafe execution states
    • LSM security checks
  1. Binary Loading:
    • Search for matching binary format
    • Invoke load_binary() handler
    • Handle interpreter recursion
  1. Commit (Point of No Return):
    • begin_new_exec() called by loader
    • Destroy old memory mappings
    • Install new credentials
    • Setup new stack frame

Phase 4: Completion

  1. Post-Exec Actions:
    • Update scheduling statistics
    • RSEQ (Restartable Sequences) notification
    • User events cleanup
    • Accounting updates
    • NUMA balancing reset
  1. Cleanup:
    • Free bprm structure
    • Release filename reference
    • Clear current->in_execve

Error Handling

Pre Point-of-No-Return

Errors returned to userspace normally:

  • -ENOENT: File not found
  • -EACCES: Permission denied
  • -ENOMEM: Out of memory
  • -E2BIG: Argument list too long
  • -ENOEXEC: Invalid executable format
  • -ELOOP: Too many levels of symbolic links or interpreters

Post Point-of-No-Return

Cannot return to userspace safely:

  • Send fatal signal (SIGSEGV) if error occurs
  • Process termination guaranteed
  • No userspace recovery possible

Integration Points

Tracing & Auditing

trace_sched_process_exec(current, old_pid, bprm);  // Scheduler trace
audit_bprm(bprm);                                   // Audit subsystem
ptrace_event(PTRACE_EVENT_EXEC, old_vpid);         // Ptrace notification
proc_exec_connector(current);                       // Proc connector

Scheduler Integration

  • sched_exec(): Optimize CPU selection after exec
  • sched_mm_cid_before_execve(): Save concurrency ID
  • sched_mm_cid_after_execve(): Restore concurrency ID

Security Subsystem

  • LSM hooks at multiple stages
  • AppArmor/SELinux policy enforcement
  • Capability bounding set updates
  • Secure computing mode (seccomp) preservation

Resource Accounting

  • Update integral accounting (CPU time)
  • Reset NUMA balancing state
  • Clear io_uring context
  • Update task statistics

Configuration Options

Config Option

Purpose

CONFIG_BINFMT_ELF

Enable ELF binary support

CONFIG_BINFMT_SCRIPT

Enable #! script support

CONFIG_BINFMT_MISC

Enable custom format handlers

CONFIG_BINFMT_FLAT

Enable flat binary support

CONFIG_COREDUMP

Enable core dump support

CONFIG_COMPAT

Enable 32-bit compatibility

CONFIG_SYSCTL

Enable /proc/sys/fs/suid_dumpable

CONFIG_EXEC_KUNIT_TEST

Enable exec unit tests


Common Issues

Issue 1: "Argument List Too Long" (E2BIG)

Cause: Total size of arguments + environment exceeds stack limit

Solution:

  • Reduce argument count or length
  • Increase RLIMIT_STACK
  • Use response files (@file) pattern

Issue 2: "Permission Denied" on SUID Binary

Cause

  • Filesystem mounted with nosuid
  • Process has no_new_privs bit set
  • SELinux/AppArmor policy denial

Debugging:

mount | grep nosuid
cat /proc/self/status | grep NoNewPrivs
dmesg | grep AVC  # SELinux denials

Issue 3: Interpreter Loop Detection

Cause: Script interpreter chain exceeds 5 levels

Example:

#!/usr/bin/python3  # Level 1
#!/usr/bin/env python3  # Level 2 (via env)
...

Solution: Reduce interpreter nesting depth

Issue 4: Memory Corruption During Exec

Cause

  • Buggy binary format handler
  • Race condition in credential transition
  • Stack overflow during argument copying

Debugging:

  • Enable KASAN (Kernel Address Sanitizer)
  • Check dmesg for OOPS messages
  • Review custom binfmt handlers

Best Practices

For Kernel Developers

  1. Use EXPORT_SYMBOL_GPL for exec-related exports
  2. Validate all user pointers before dereferencing
  3. Check return values from all allocation functions
  4. Handle partial failures gracefully before point of no return
  5. Document binary format handlers with kerneldoc
  6. Test with various configurations (SUID, namespaces, LSM enabled)

For Userspace Applications

  1. Check execve return value - never assume success
  2. Limit argument size to avoid E2BIG
  3. Use execveat for better security (relative paths, O_CLOEXEC)
  4. Clear sensitive data from environment before exec
  5. Handle SIGCHLD properly in parent processes

Related Files

File

Purpose

fs/exec.c

Main execve implementation

include/linux/binfmts.h

Binary format interfaces

fs/binfmt_elf.c

ELF binary loader

fs/binfmt_script.c

Script interpreter handler

fs/binfmt_misc.c

Custom format handler

fs/binfmt_flat.c

Flat binary loader

include/linux/sched.h

Task structure definitions

include/linux/cred.h

Credential management

include/linux/security.h

LSM hook definitions

arch/x86/include/asm/syscall.h

x86 syscall interface


Testing

KUnit Tests

Enable with CONFIG_EXEC_KUNIT_TEST=y:

#ifdef CONFIG_EXEC_KUNIT_TEST
#include "tests/exec_kunit.c"
#endif

Manual Testing

# Test basic execve
strace -e execve ./test_program

# Test with different formats
./elf_binary
./script.sh
echo "test" | binfmt_misc_handler

# Test SUID behavior
chmod u+s suid_program
ls -l suid_program
./suid_program

# Test resource limits
ulimit -s 8192  # 8MB stack
./large_argv_program

Performance Considerations

Optimization Opportunities

  1. sched_exec(): Migrates process to optimal CPU
  2. Demand loading: Page faults load executable on-demand
  3. Shared libraries: mmap() with MAP_PRIVATE for COW
  4. VDSO: Virtual dynamic shared object avoids syscalls

Bottlenecks

  1. Argument copying: O(n) where n = total arg+env size
  2. Binary parsing: ELF header/program header processing
  3. Library resolution: Dynamic linker overhead
  4. Page faults: Initial code/data access patterns

Profiling

# Profile execve latency
perf record -e syscalls:sys_enter_execve,syscalls:sys_exit_execve ./program
perf report

# Trace binary format selection
ftrace -p function_graph -g search_binary_handler

Historical Notes

  • 1991: Original exec implementation by Linus Torvalds
  • 1993: Demand-loading added by Eric Youngdale (mmap-based)
  • 1990s: Binary format dispatch table introduced
  • 2000s: Security enhancements (LSM, capabilities)
  • 2010s: execveat syscall added (Linux 3.17)
  • 2020s: Enhanced auditing and tracing support

References

  • POSIX execve Specification
  • Linux man page: execve(2)
  • ELF Specification
  • Linux Security Modules
  • Binary Formats

Last Updated: 2026-04-09
Maintainer: Linux Kernel Process Management Maintainers
Status: Stable - Core System Call

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-16 19:22:28 HTTP/2.0 GET : https://f.mffb.com.cn/a/485631.html
  2. 运行时间 : 0.120978s [ 吞吐率:8.27req/s ] 内存消耗:4,970.41kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7181c1c84071920b7e9f0d83500c9e03
  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.000465s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000658s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002025s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000306s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000633s ]
  6. SELECT * FROM `set` [ RunTime:0.000541s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000700s ]
  8. SELECT * FROM `article` WHERE `id` = 485631 LIMIT 1 [ RunTime:0.001621s ]
  9. UPDATE `article` SET `lasttime` = 1776338548 WHERE `id` = 485631 [ RunTime:0.002707s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.003461s ]
  11. SELECT * FROM `article` WHERE `id` < 485631 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000899s ]
  12. SELECT * FROM `article` WHERE `id` > 485631 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000531s ]
  13. SELECT * FROM `article` WHERE `id` < 485631 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004864s ]
  14. SELECT * FROM `article` WHERE `id` < 485631 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002795s ]
  15. SELECT * FROM `article` WHERE `id` < 485631 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005841s ]
0.122542s