strace prints all the system calls that a process makes. strace can be used to trace the program's execution status, for e.g. let's say we run the cmd as: strace cat not_a_file , here we get an error in open call in the resulting output as: - openat(AT_FDCWD, "/usr/share/locale/en_IN/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) it returns -1 as it is not able to find the file. Missing files are the most common problems with Unix programs, so if the system log and other log information aren't very helpful, strace comes handy there.