| Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 1 | #if HAVE_CONFIG_H |
| 2 | #include "config.h" |
| 3 | #endif |
| 4 | |
| Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 5 | #include <stdio.h> |
| Juan Cespedes | a485083 | 2002-03-03 02:37:50 +0100 | [diff] [blame] | 6 | #include <sys/types.h> |
| Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 7 | |
| Ian Wienand | 2d45b1a | 2006-02-20 22:48:07 +0100 | [diff] [blame] | 8 | extern FILE *output; |
| 9 | extern int opt_a; /* default alignment column for results */ |
| 10 | extern int opt_c; /* count time, calls, and report a summary on program exit */ |
| 11 | extern int opt_d; /* debug */ |
| 12 | extern int opt_i; /* instruction pointer */ |
| 13 | extern int opt_s; /* default maximum # of bytes printed in strings */ |
| 14 | extern int opt_L; /* display library calls */ |
| 15 | extern int opt_S; /* display system calls */ |
| 16 | extern int opt_f; /* trace child processes */ |
| 17 | extern char *opt_u; /* username to run command as */ |
| 18 | extern int opt_r; /* print relative timestamp */ |
| 19 | extern int opt_t; /* print absolute timestamp */ |
| 20 | extern int opt_C; /* Demanglelow-level symbol names into user-level names */ |
| 21 | extern int opt_n; /* indent trace output according to program flow */ |
| 22 | extern int opt_T; /* show the time spent inside each call */ |
| Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 23 | |
| 24 | struct opt_p_t { |
| 25 | pid_t pid; |
| Ian Wienand | 2d45b1a | 2006-02-20 22:48:07 +0100 | [diff] [blame] | 26 | struct opt_p_t *next; |
| Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 27 | }; |
| 28 | |
| Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 29 | struct opt_e_t { |
| Ian Wienand | 2d45b1a | 2006-02-20 22:48:07 +0100 | [diff] [blame] | 30 | char *name; |
| 31 | struct opt_e_t *next; |
| Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 32 | }; |
| 33 | |
| Paul Gilliam | 24e643a | 2006-03-13 18:43:13 +0100 | [diff] [blame^] | 34 | struct opt_x_t { |
| 35 | char *name; |
| 36 | int found; |
| 37 | struct opt_x_t *next; |
| 38 | }; |
| 39 | |
| Ian Wienand | 2d45b1a | 2006-02-20 22:48:07 +0100 | [diff] [blame] | 40 | extern struct opt_p_t *opt_p; /* attach to process with a given pid */ |
| Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 41 | |
| Ian Wienand | 2d45b1a | 2006-02-20 22:48:07 +0100 | [diff] [blame] | 42 | extern struct opt_e_t *opt_e; /* list of function names to display */ |
| Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 43 | extern int opt_e_enable; /* 0 if '!' is used, 1 otherwise */ |
| 44 | |
| Paul Gilliam | 24e643a | 2006-03-13 18:43:13 +0100 | [diff] [blame^] | 45 | extern struct opt_x_t *opt_x; /* list of functions to break at */ |
| Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 46 | |
| Ian Wienand | 2d45b1a | 2006-02-20 22:48:07 +0100 | [diff] [blame] | 47 | extern char **process_options(int argc, char **argv); |