n be analyzed with 'gprof -l -A'. The '-x' option is also helpful, to ensure that each line of code is labeled at least once. Here is 'updcrc''s annotated source listing for a sample 'gzip' run: ulg updcrc(s, n) uch *s; unsigned n; 2 ->{ register ulg c; static ulg crc = (ulg)0xffffffffL; 2 -> if (s == NULL) { 1 -> c = 0xffffffffL; 1 -> } else { 1 -> c = crc; 1 -> if (n) do { 26312 -> c = crc_32_tab[...]; 26312,1,26311 -> } while (--n); } 2 -> crc = c; 2 -> return c ^ 0xffffffffL; 2 ->} In this example, the function was called twice, passing once through each branch of the 'if' statement. The body of the 'do' loop was executed a total of 26312 times. Note how the 'while' statement is annotated. It began execution 26312 times, once for each iteration through the loop. One of those times (the last time) it exited, while it branched back to the beginning of the loop 26311 times.