前言
strace用来跟踪进程的系统调用或信号产生的情况;
ltrace 用来跟踪进程调用库函数的情况。
1,strace命令
root@ubuntu:/opt/files/release/strace/x86_64/bin# ./strace uname
execve("/bin/uname", ["uname"], 0x7ffc0cd82290 /* 20 vars */) = 0
brk(NULL) = 0x1ed4000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = 0
open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {
st_mode=S_IFREG|0644, st_size=1, ...}) = 0
mmap(NULL, 1, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7f4fcdb37000
close(3) = 0
munmap(0x7f4fcdb37000, 1) = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {
st_mode=S_IFREG|0644, st_size=85661, ...}) = 0
mmap(NULL, 85661, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f4f