티스토리 뷰

strace
- 특정 프로그램의 system call과 signal을 감시 및 추적 하는 동적 분석 도구 
- 소스코드가 없는 경우 또는 특정 프로그램의 시작부터 종료까지의 시퀀스를 살펴볼 필요가 있을때 해법이 될 수 있다. 





########################################################################################
모든 시스템콜 확인 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
[root@tak ~]# strace ls 
execve("/bin/ls", ["ls"], [/* 25 vars */]) = 0 
brk(NULL)                               = 0x13aa000 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f427924c000 
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 
fstat(3, {st_mode=S_IFREG|0644, st_size=119569, ...}) = 0 
mmap(NULL, 119569, PROT_READ, MAP_PRIVATE, 30= 0x7f427922e000 
close(3)                                = 0 
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320i\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=155784, ...}) = 0 
mmap(NULL, 2255184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f4278e05000 
mprotect(0x7f4278e290002093056, PROT_NONE) = 0 
mmap(0x7f42790280008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x23000= 0x7f4279028000 
mmap(0x7f427902a0006480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -10= 0x7f427902a000 
close(3)                                = 0 
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\26\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=20048, ...}) = 0 
mmap(NULL, 2114112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f4278c00000 
mprotect(0x7f4278c040002093056, PROT_NONE) = 0 
mmap(0x7f4278e030008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x3000= 0x7f4278e03000 
close(3)                                = 0 
open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=37056, ...}) = 0 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f427922d000 
mmap(NULL, 2130560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f42789f7000 
mprotect(0x7f42789fe0002097152, PROT_NONE) = 0 
mmap(0x7f4278bfe0008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x7000= 0x7f4278bfe000 
close(3)                                = 0 
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20&\2\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=2156160, ...}) = 0 
mmap(NULL, 3985888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f4278629000 
mprotect(0x7f42787ec0002097152, PROT_NONE) = 0 
mmap(0x7f42789ec00024576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x1c3000= 0x7f42789ec000 
mmap(0x7f42789f200016864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -10= 0x7f42789f2000 
close(3)                                = 0 
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\25\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=402384, ...}) = 0 
mmap(NULL, 2494984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f42783c7000 
mprotect(0x7f42784270002097152, PROT_NONE) = 0 
mmap(0x7f42786270008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x60000= 0x7f4278627000 
close(3)                                = 0 
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=19288, ...}) = 0 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f427922c000 
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f42781c3000 
mprotect(0x7f42781c50002097152, PROT_NONE) = 0 
mmap(0x7f42783c50008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x2000= 0x7f42783c5000 
close(3)                                = 0 
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=19896, ...}) = 0 
mmap(NULL, 2113904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f4277fbe000 
mprotect(0x7f4277fc20002093056, PROT_NONE) = 0 
mmap(0x7f42781c10008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x3000= 0x7f42781c1000 
close(3)                                = 0 
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 
read(3"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@m\0\0\0\0\0\0"..., 832= 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=142232, ...}) = 0 
mmap(NULL, 2208904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 30= 0x7f4277da2000 
mprotect(0x7f4277db90002093056, PROT_NONE) = 0 
mmap(0x7f4277fb80008192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 30x16000= 0x7f4277fb8000 
mmap(0x7f4277fba00013448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -10= 0x7f4277fba000 
close(3)                                = 0 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f427922b000 
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f4279229000 
arch_prctl(ARCH_SET_FS, 0x7f4279229840= 0 
mprotect(0x7f42789ec00016384, PROT_READ) = 0 
mprotect(0x7f4277fb80004096, PROT_READ) = 0 
mprotect(0x7f42781c10004096, PROT_READ) = 0 
mprotect(0x7f42783c50004096, PROT_READ) = 0 
mprotect(0x7f42786270004096, PROT_READ) = 0 
mprotect(0x7f4278bfe0004096, PROT_READ) = 0 
mprotect(0x7f4278e030004096, PROT_READ) = 0 
mprotect(0x7f42790280004096, PROT_READ) = 0 
mprotect(0x61a0004096, PROT_READ)     = 0 
mprotect(0x7f427924d0004096, PROT_READ) = 0 
munmap(0x7f427922e000119569)          = 0 
set_tid_address(0x7f4279229b10)         = 10215 
set_robust_list(0x7f4279229b2024)     = 0 
rt_sigaction(SIGRTMIN, {0x7f4277da8820, [], SA_RESTORER|SA_SIGINFO, 0x7f4277db15f0}, NULL, 8= 0 
rt_sigaction(SIGRT_1, {0x7f4277da88b0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f4277db15f0}, NULL, 8= 0 
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8= 0 
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 
statfs("/sys/fs/selinux", {f_type=SELINUX_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={00}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0 
statfs("/sys/fs/selinux", {f_type=SELINUX_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={00}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0 
stat("/sys/fs/selinux", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 
brk(NULL)                               = 0x13aa000 
brk(0x13cb000)                          = 0x13cb000 
access("/etc/selinux/config", F_OK)     = 0 
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 
fstat(3, {st_mode=S_IFREG|0644, st_size=106075056, ...}) = 0 
mmap(NULL, 106075056, PROT_READ, MAP_PRIVATE, 30= 0x7f4271878000 
close(3)                                = 0 
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 
ioctl(1, TIOCGWINSZ, {ws_row=61, ws_col=256, ws_xpixel=0, ws_ypixel=0}) = 0 
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 
getdents(3/* 14 entries */32768)    = 464 
getdents(3/* 0 entries */32768)     = 0 
close(3)                                = 0 
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(1361), ...}) = 0 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f427924b000 
write(1"anaconda-ks.cfg  initial-setup-k"..., 38anaconda-ks.cfg  initial-setup-ks.cfg 
= 38 
close(1)                                = 0 
munmap(0x7f427924b0004096)            = 0 
close(2)                                = 0 
exit_group(0)                           = ? 
+++ exited with 0 +++ 
 
############################################################################################################################################################ 
특정 시스템콜만 확인하고 싶을때  
 
[root@tak ~]# strace -e open ls 
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3 
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 
anaconda-ks.cfg  initial-setup-ks.cfg 
+++ exited with 0 +++ 
cs



여러개 옵션 줄때 

[root@tak ~]# strace -e trace=open,read ls 
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320i\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\26\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20&\2\0\0\0\0\0"..., 832) = 832
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\25\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@m\0\0\0\0\0\0"..., 832) = 832
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
anaconda-ks.cfg  initial-setup-ks.cfg
+++ exited with 0 +++

############################################################################################################################################################
출력 결과를 파일로 저장할때  -o 옵션 
[root@tak ~]# strace -o output.txt -e trace=open,read ls
anaconda-ks.cfg  initial-setup-ks.cfg  output.txt
[root@tak ~]# cat output.txt 
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320i\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\26\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20&\2\0\0\0\0\0"..., 832) = 832
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\25\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832) = 832
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@m\0\0\0\0\0\0"..., 832) = 832
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
+++ exited with 0 +++

############################################################################################################################################################

pid 정보확인

tmax2@tak:/home/tmax2/proframe5.0/package/tmax> ps -C startNodeManager
   PID TTY          TIME CMD
  9483 pts/1    00:00:00 startNodeManage


############################################################################################################################################################

프로세스 분석 -p 옵션 

tmax2@tak:/home/tmax2/proframe5.0/package/tmax> strace -p 9483 -o output.txt
strace: Process 9483 attached


tmax2@tak:/home/tmax2/proframe5.0/package/tmax> tail -f output.txt 
wait4(-1, 
[{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 9486
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=9486, si_uid=1001, si_status=0, si_utime=316, si_stime=472} ---
wait4(-1, 0x7ffe83c98c10, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[]})                 = 0
rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 0x7f3f5b6413b0}, {SIG_IGN, [], SA_RESTORER, 0x7f3f5b6413b0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(255, "", 2242)                     = 0
exit_group(0)                           = ?
+++ exited with 0 +++

############################################################################################################################################################

시간대로 분석하기   -t 옵션
[root@tak ~]# strace -t -e open ls /home/root
18:06:45 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
18:06:45 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
ls: cannot access /home/root18:06:45 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
18:06:45 open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
: No such file or directory
18:06:45 +++ exited with 2 +++
############################################################################################################################################################
시스템콜 횟수 통계내기  -c 옵션 

[root@tak ~]# strace -c ls 
anaconda-ks.cfg  initial-setup-ks.cfg  output.txt
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.00    0.000000           0         8           read
  0.00    0.000000           0         1           write
  0.00    0.000000           0        10           open
  0.00    0.000000           0        13           close
  0.00    0.000000           0         1           stat
  0.00    0.000000           0        11           fstat
  0.00    0.000000           0        27           mmap
  0.00    0.000000           0        18           mprotect
  0.00    0.000000           0         2           munmap
  0.00    0.000000           0         3           brk
  0.00    0.000000           0         2           rt_sigaction
  0.00    0.000000           0         1           rt_sigprocmask
  0.00    0.000000           0         2           ioctl
  0.00    0.000000           0         2         1 access
  0.00    0.000000           0         1           execve
  0.00    0.000000           0         2           getdents
  0.00    0.000000           0         1           getrlimit
  0.00    0.000000           0         2           statfs
  0.00    0.000000           0         1           arch_prctl
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         1           openat
  0.00    0.000000           0         1           set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000                   111         1 total

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31