개발/개발관련

[개발 관련] 시스템 콜 확인 하는 방법- strace

mabb 2024. 3. 28. 00:40
반응형

strace java ./HelloJava.java

시스템 콜에 대한 이해,,
시스템 콜은 프로세스가 운영체제의 서비스를 이용하는 것
-> 운영체제(커널 영역)에 있는 서비스(함수, 기능)을 사용하는 것
-> 시스템 콜에도 매개변수와 반환 값이 있다.

execve(매개변수) = 리턴값

HelloJava.java 를 컴파일 하는 단순한 명령어에도 시스템 콜이 이렇게나 많이 호출 된다.

리눅스 시스템콜 내용 확인 

 

futex(2) - Linux manual page

futex(2) — Linux manual page futex(2) System Calls Manual futex(2) NAME         top futex - fast user-space locking LIBRARY         top Standard C library (libc, -lc) SYNOPSIS         top #include /* Definition of FUTEX_* constants */ #includ

man7.org

OS: Rocky Linux release 9.1 (Blue Onyx)

[root@aa]# strace javac ./HelloJava.java
execve("/usr/local/jdk/bin/javac", ["javac", "./HelloJava.java"], 0x7ffe01943bf8 /* 41 vars */) = 0

brk(NULL) = 0x127d000

arch_prctl(0x3001 /* ARCH_??? */, 0x7fffd2b34eb0) = -1 EINVAL (부적절한 인수)

readlink("/proc/self/exe", "/usr/local/jdk/bin/javac", 4096) = 24

mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6a20224000

access("/etc/ld.so.preload", R_OK) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/glibc-hwcaps/x86-64-v2/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/glibc-hwcaps/x86-64-v2", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다) newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli", {st_mode=S_IFDIR|0755, st_size=23, ...}, 0) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/glibc-hwcaps/x86-64-v2/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/glibc-hwcaps/x86-64-v2", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다) newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다) openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64", 0x7fffd2b340e0, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64", {st_mode=S_IFDIR|0755, st_size=35, ...}, 0) = 0 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=45463, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 45463, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6a20218000 close(3) = 0

openat(AT_FDCWD, "/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\0P\20\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=15480, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 16424, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a20213000

mmap(0x7f6a20214000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f6a20214000

mmap(0x7f6a20215000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6a20215000

mmap(0x7f6a20216000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6a20216000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libjli.so", 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#\0\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=102990, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 2184904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a1fffd000 mprotect(0x7f6a20012000, 2097152, PROT_NONE) = 0

mmap(0x7f6a20212000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f6a20212000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/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\0P\20\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=15464, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 16424, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a1fff8000

mmap(0x7f6a1fff9000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f6a1fff9000

mmap(0x7f6a1fffa000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6a1fffa000 mmap(0x7f6a1fffb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6a1fffb000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/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\0p\0\4\0\0\0\0\0"..., 832) = 832

pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48

pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\263\235F\212\352\326\331\355\342'u\37\376\t=\242"..., 68, 896) = 68

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2387200, ...}, AT_EMPTY_PATH) = 0

pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784

mmap(NULL, 2133936, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a1fdef000

mprotect(0x7f6a1fe17000, 1892352, PROT_NONE) = 0

mmap(0x7f6a1fe17000, 1527808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f6a1fe17000

mmap(0x7f6a1ff8c000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7f6a1ff8c000

mmap(0x7f6a1ffe5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f5000) = 0x7f6a1ffe5000

mmap(0x7f6a1ffeb000, 53168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6a1ffeb000

close(3) = 0

mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6a1fded000

arch_prctl(ARCH_SET_FS, 0x7f6a1fdedb80) = 0

set_tid_address(0x7f6a1fdede50) = 3568408

set_robust_list(0x7f6a1fdede60, 24) = 0 rseq(0x7f6a1fdee520, 0x20, 0, 0x53053053) = 0

mprotect(0x7f6a1ffe5000, 16384, PROT_READ) = 0 mprotect(0x7f6a1fffb000, 4096, PROT_READ) = 0

mprotect(0x7f6a20216000, 4096, PROT_READ) = 0

mprotect(0x7f6a2025a000, 8192, PROT_READ) = 0

prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0

munmap(0x7f6a20218000, 45463) = 0

getrandom("\x65\x2f\x68\x9e\x27\xaf\xca\x6f", 8, GRND_NONBLOCK) = 8

brk(NULL) = 0x127d000 brk(0x129e000) = 0x129e000

readlink("/proc/self/exe", "/usr/local/jdk/bin/javac", 4096) = 24

access("/usr/local/jdk/lib/amd64/libjava.so", F_OK) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

access("/usr/local/jdk/jre/lib/amd64/libjava.so", F_OK) = 0

openat(AT_FDCWD, "/usr/local/jdk/jre/lib/amd64/jvm.cfg", O_RDONLY) = 3

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=627, ...}, AT_EMPTY_PATH) = 0

read(3, "# Copyright (c) 2003, 2013, Orac"..., 4096) = 627

read(3, "", 4096) = 0

close(3) = 0

stat("/usr/local/jdk/jre/lib/amd64/server/libjvm.so", {st_mode=S_IFREG|0755, st_size=16835277, ...}) = 0

openat(AT_FDCWD, "/usr/local/jdk/jre/lib/amd64/server/libjvm.so", 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\260\304!\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=16835277, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 16547336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a1ee25000

mprotect(0x7f6a1fad3000, 2093056, PROT_NONE) = 0

mmap(0x7f6a1fcd2000, 880640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcad000) = 0x7f6a1fcd2000

mmap(0x7f6a1fda9000, 278024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6a1fda9000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=45463, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 45463, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6a20218000

close(3) = 0

openat(AT_FDCWD, "/lib64/libm.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\220\323\0\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=904688, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 893184, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a1ed4a000

mmap(0x7f6a1ed57000, 458752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0x7f6a1ed57000

mmap(0x7f6a1edc7000, 376832, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7d000) = 0x7f6a1edc7000

mmap(0x7f6a1ee23000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd8000) = 0x7f6a1ee23000 close(3) = 0

mprotect(0x7f6a1ee23000, 4096, PROT_READ) = 0

getpid() = 3568408

munmap(0x7f6a20218000, 45463) = 0

getpid() = 3568408

rt_sigaction(SIGRT_1, {sa_handler=0x7f6a1fe8bb70, sa_mask=[],sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f6a1fe43df0}, NULL, 8) = 0

rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0

mmap(NULL, 1052672, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f6a1ec49000

mprotect(0x7f6a1ec4a000, 1048576, PROT_READ|PROT_WRITE) = 0

rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0

clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f6a1ed49910, parent_tid=0x7f6a1ed49910, exit_signal=0, stack=0x7f6a1ec49000, stack_size=0xfff00, tls=0x7f6a1ed49640} => {parent_tid=[3568409]}, 88) = 3568409

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 futex(0x7f6a1ed49910, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 3568409, NULL, FUTEX_BITSET_MATCH_ANY) = ? +++

exited with 0 +++


[root@aa]# ls HelloJava.class HelloJava.java

 

 

java의 "Hello Java" 를 출력할 때는 시스템 콜을 얼마나 호출할까?

[root@aa]#strace java HelloJava

execve("/usr/local/jdk/bin/java", ["java", "HelloJava"], 0x7ffcd6d08dc8 /* 41 vars */) = 0

brk(NULL) = 0x1ddf000

arch_prctl(0x3001 /* ARCH_??? */, 0x7fff985808e0) = -1 EINVAL (부적절한 인수)

readlink("/proc/self/exe", "/usr/local/jdk/bin/java", 4096) = 23

mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9d42b0f000

access("/etc/ld.so.preload", R_OK) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/glibc-hwcaps/x86-64-v2/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/glibc-hwcaps/x86-64-v2", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/tls", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli", {st_mode=S_IFDIR|0755, st_size=23, ...}, 0) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/glibc-hwcaps/x86-64-v2/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/glibc-hwcaps/x86-64-v2", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/tls", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다) openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/x86_64", 0x7fff9857fb10, 0) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

newfstatat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64", {st_mode=S_IFDIR|0755, st_size=35, ...}, 0) = 0

openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=45463, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 45463, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9d42b03000 close(3) = 0

openat(AT_FDCWD, "/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\0P\20\0\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=15480, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 16424, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9d42afe000

mmap(0x7f9d42aff000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f9d42aff000

mmap(0x7f9d42b00000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f9d42b00000

mmap(0x7f9d42b01000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f9d42b01000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libjli.so", 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#\0\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=102990, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 2184904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9d428e8000

mprotect(0x7f9d428fd000, 2097152, PROT_NONE) = 0

mmap(0x7f9d42afd000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f9d42afd000

close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/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\0P\20\0\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=15464, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 16424, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9d428e3000

mmap(0x7f9d428e4000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f9d428e4000

mmap(0x7f9d428e5000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f9d428e5000

mmap(0x7f9d428e6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f9d428e6000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/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\0p\0\4\0\0\0\0\0"..., 832) = 832

pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784

pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48

pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\263\235F\212\352\326\331\355\342'u\37\376\t=\242"..., 68, 896) = 68

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2387200, ...}, AT_EMPTY_PATH) = 0

pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784

mmap(NULL, 2133936, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9d426da000

mprotect(0x7f9d42702000, 1892352, PROT_NONE) = 0

mmap(0x7f9d42702000, 1527808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f9d42702000

mmap(0x7f9d42877000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7f9d42877000

mmap(0x7f9d428d0000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f5000) = 0x7f9d428d0000

mmap(0x7f9d428d6000, 53168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9d428d6000 close(3) = 0

mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9d426d8000

arch_prctl(ARCH_SET_FS, 0x7f9d426d8b80) = 0

set_tid_address(0x7f9d426d8e50) = 3603276

set_robust_list(0x7f9d426d8e60, 24) = 0

rseq(0x7f9d426d9520, 0x20, 0, 0x53053053) = 0

mprotect(0x7f9d428d0000, 16384, PROT_READ) = 0

mprotect(0x7f9d428e6000, 4096, PROT_READ) = 0

mprotect(0x7f9d42b01000, 4096, PROT_READ) = 0

mprotect(0x7f9d42b45000, 8192, PROT_READ) = 0

prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0

munmap(0x7f9d42b03000, 45463) = 0

getrandom("\x23\xb3\x9c\xe2\x15\x5f\x61\xaa", 8, GRND_NONBLOCK) = 8

brk(NULL) = 0x1ddf000 brk(0x1e00000) = 0x1e00000

readlink("/proc/self/exe", "/usr/local/jdk/bin/java", 4096) = 23

access("/usr/local/jdk/lib/amd64/libjava.so", F_OK) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

access("/usr/local/jdk/jre/lib/amd64/libjava.so", F_OK) = 0

openat(AT_FDCWD, "/usr/local/jdk/jre/lib/amd64/jvm.cfg", O_RDONLY) = 3

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=627, ...}, AT_EMPTY_PATH) = 0

read(3, "# Copyright (c) 2003, 2013, Orac"..., 4096) = 627 read(3, "", 4096) = 0

close(3) = 0

stat("/usr/local/jdk/jre/lib/amd64/server/libjvm.so", {st_mode=S_IFREG|0755, st_size=16835277, ...}) = 0

openat(AT_FDCWD, "/usr/local/jdk/jre/lib/amd64/server/libjvm.so", 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\260\304!\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=16835277, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 16547336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9d41710000

mprotect(0x7f9d423be000, 2093056, PROT_NONE) = 0

mmap(0x7f9d425bd000, 880640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcad000) = 0x7f9d425bd000

mmap(0x7f9d42694000, 278024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9d42694000 close(3) = 0

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/jli/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/usr/local/jdk/bin/../lib/amd64/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (그런 파일이나 디렉터리가 없습니다)

openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=45463, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 45463, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9d42b03000 close(3) = 0

openat(AT_FDCWD, "/lib64/libm.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\220\323\0\0\0\0\0\0"..., 832) = 832

newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=904688, ...}, AT_EMPTY_PATH) = 0

mmap(NULL, 893184, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9d41635000

mmap(0x7f9d41642000, 458752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0x7f9d41642000

mmap(0x7f9d416b2000, 376832, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7d000) = 0x7f9d416b2000

mmap(0x7f9d4170e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd8000) = 0x7f9d4170e000

close(3) = 0

mprotect(0x7f9d4170e000, 4096, PROT_READ) = 0

getpid() = 3603276

munmap(0x7f9d42b03000, 45463) = 0

getpid() = 3603276

rt_sigaction(SIGRT_1, {sa_handler=0x7f9d42776b70, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f9d4272edf0}, NULL, 8) = 0

rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0

mmap(NULL, 1052672, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f9d41534000

mprotect(0x7f9d41535000, 1048576, PROT_READ|PROT_WRITE) = 0

rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0

clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f9d41634910, parent_tid=0x7f9d41634910, exit_signal=0, stack=0x7f9d41534000, stack_size=0xfff00, tls=0x7f9d41634640} => {parent_tid=[3603277]}, 88) = 3603277

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

futex(0x7f9d41634910, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 3603277, NULL, FUTEX_BITSET_MATCH_ANYHello Java !! ) = 0

exit_group(0) = ? +++ exited with 0 +++
반응형