<> ||<>|| Sometimes, a program starts behaving errantly. It gives incorrect output on its input, it doesn't print anything at all, or even hangs. Under a Linux-based system, every userspace process has to interact with its environment through the kernel. And it does this by invoking system calls. Strace is a utility that intercepts and logs these system calls. In this way, you can watch how a program interacts with the system, which is useful for tracking down behavioural issues. = Creating strace output = 1. Make sure strace is installed. {{{ apt-get install strace }}} 1. Start the program under control of `strace`: {{{ strace -Ff -tt 2>&1 | tee strace-.log }}} 1. The program will start. Perform any actions necessary to reproduce the crash 1. Attach the complete output from strace, contained in strace-.log, in your bug report. = Using strace with already running programs = You may want to run strace on an already running program. This could be because strace logs too many things before you can reproduce a crash. Or, it could be because you are trying to find out what a program is doing in an infinite loop. 1. Make sure strace is installed. {{{ apt-get install strace }}} 1. Find the process ID of : {{{ pidof }}} 1. Start strace with the process ID: {{{ strace -Ff -tt -p 2>&1 | tee strace-.log }}} 1. Perform any actions necessary to reproduce the bug. 1. You may have to hit Control-C to get strace to detach from a running program. 1. Attach the complete output from strace, contained in strace-.log, in your bug report. ---- CategoryDebugging CategoryBugSquad