ユーザ用ツール

サイト用ツール


サイドバー

Top

検索タグ

変更履歴

メニュー


hardware:gl-ar750s-ext:strace

strace コマンド

インストール

# opkg update && opkg install strace
Downloading https://fw.gl-inet.com/releases/kmod-3.2/ar71xx/nand/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_core
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/sync_kmod-3.2/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_sync
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/base/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_base
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/gli_pub/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_gli_pub
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_packages
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_luci
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_routing
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_telephony
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/glinet/Packages.gz
Updated list of available packages in /var/opkg-lists/glinet_glinet
Installing strace (4.20-1) to root...
Downloading https://fw.gl-inet.com/releases/packages-3.x/ar71xx/base/strace_4.20-1_mips_24kc.ipk
Configuring strace.

動作確認

# strace -h
usage: strace [-CdffhiqrtttTvVwxxy] [-I n] [-e expr]...
              [-a column] [-o file] [-s strsize] [-P path]...
              -p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]
   or: strace -c[dfw] [-I n] [-e expr]... [-O overhead] [-S sortby]
              -p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]

Output format:
  -a column      alignment COLUMN for printing syscall results (default 40)
  -i             print instruction pointer at time of syscall
  -o file        send trace output to FILE instead of stderr
  -q             suppress messages about attaching, detaching, etc.
  -r             print relative timestamp
  -s strsize     limit length of print strings to STRSIZE chars (default 32)
  -t             print absolute timestamp
  -tt            print absolute timestamp with usecs
  -T             print time spent in each syscall
  -x             print non-ascii strings in hex
  -xx            print all strings in hex
  -y             print paths associated with file descriptor arguments
  -yy            print protocol specific information associated with socket file descriptors

Statistics:
  -c             count time, calls, and errors for each syscall and report summary
  -C             like -c but also print regular output
  -O overhead    set overhead for tracing syscalls to OVERHEAD usecs
  -S sortby      sort syscall counts by: time, calls, name, nothing (default time)
  -w             summarise syscall latency (default is system time)

Filtering:
  -e expr        a qualifying expression: option=[!]all or option=[!]val1[,val2]...
     options:    trace, abbrev, verbose, raw, signal, read, write, fault
  -P path        trace accesses to path

Tracing:
  -b execve      detach on execve syscall
  -D             run tracer process as a detached grandchild, not as parent
  -f             follow forks
  -ff            follow forks with output into separate files
  -I interruptible
     1:          no signals are blocked
     2:          fatal signals are blocked while decoding syscall (default)
     3:          fatal signals are always blocked (default if '-o FILE PROG')
     4:          fatal signals and SIGTSTP (^Z) are always blocked
                 (useful to make 'strace -o FILE PROG' not stop on ^Z)

Startup:
  -E var         remove var from the environment for command
  -E var=val     put var=val in the environment for command
  -p pid         trace process with process id PID, may be repeated
  -u username    run command as username handling setuid and/or setgid

Miscellaneous:
  -d             enable debug output to stderr
  -v             verbose mode: print unabbreviated argv, stat, termios, etc. args
  -h             print help message
  -V             print version

実行

strace [プロセス(コマンド等)]

実行例:

# strace ls
execve("/bin/ls", ["ls"], 0x7faec570 /* 13 vars */) = 0
set_thread_area(0x77cc1da0)             = 0
set_tid_address(0x77cbad08)             = 2290
open("/etc/ld-musl-mips-sf.path", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=87624, ...}) = 0
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0(0\0\0\0004"..., 936) = 936
mmap2(NULL, 155648, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x77be2000
mmap2(0x77c07000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x15000) = 0x77c07000
close(3)                                = 0
mprotect(0x45f000, 4096, PROT_READ)     = 0
prctl(PR_SET_NAME, "ls")                = 0
getuid()                                = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1584324418, tv_nsec=689099805}) = 0
ioctl(0, TIOCGWINSZ, 0x7fd4acd8)        = 0
ioctl(1, TIOCGWINSZ, 0x7fd4ad10)        = 0
ioctl(1, TIOCGWINSZ, 0x7fd4ad10)        = 0
stat64(".", {st_mode=S_IFDIR|0755, st_size=3, ...}) = 0
open(".", O_RDONLY|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 2 entries */, 2048)    = 48
getdents64(3, /* 0 entries */, 2048)    = 0
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++
hardware/gl-ar750s-ext/strace.txt · 最終更新: 2020/09/11 19:08 by ともやん