diff options
Diffstat (limited to 'options.h')
-rw-r--r-- | options.h | 82 |
1 files changed, 52 insertions, 30 deletions
@@ -1,19 +1,55 @@ +/* + * This file is part of ltrace. + * Copyright (C) 2009,2010 Joe Damato + * Copyright (C) 1998,2002,2008 Juan Cespedes + * Copyright (C) 2006 Ian Wienand + * Copyright (C) 2006 Steve Fink + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + #include <stdio.h> #include <sys/types.h> +#include "forward.h" + struct options_t { - int align; /* -a: default alignment column for results */ - char * user; /* -u: username to run command as */ - int syscalls; /* -S: display system calls */ - int libcalls; /* -L: display library calls */ - int demangle; /* -C: demangle low-level names into user-level names */ - int indent; /* -n: indent trace output according to program flow */ - FILE *output; /* output to a specific file */ - int summary; /* count time, calls, and report a summary on program exit */ - int debug; /* debug */ - int arraylen; /* default maximum # of array elements printed */ - int strlen; /* default maximum # of bytes printed in strings */ - int follow; /* trace child processes */ + int align; /* -a: default alignment column for results */ + char * user; /* -u: username to run command as */ + int syscalls; /* -S: display system calls */ + int demangle; /* -C: demangle low-level names into user-level names */ + int indent; /* -n: indent trace output according to program flow */ + FILE *output; /* output to a specific file */ + int summary; /* count time, calls, and report a summary on program exit */ + int debug; /* debug */ + size_t arraylen; /* default maximum # of array elements printed */ + size_t strlen; /* default maximum # of bytes printed in strings */ + int follow; /* trace child processes */ + int no_signals; /* don't print signals */ +#if defined(HAVE_LIBUNWIND) + int bt_depth; /* how may levels of stack frames to show */ +#endif /* defined(HAVE_LIBUNWIND) */ + struct filter *plt_filter; + struct filter *static_filter; + + /* A filter matching library names of libraries, whose + * exported symbols we wish to trace. */ + struct filter *export_filter; + + int hide_caller; /* Whether caller library should be hidden. */ }; extern struct options_t options; @@ -27,29 +63,15 @@ struct opt_p_t { struct opt_p_t *next; }; -struct opt_e_t { - char *name; - struct opt_e_t *next; -}; - -struct opt_F_t { - char *filename; +struct opt_F_t +{ struct opt_F_t *next; -}; - -struct opt_x_t { - char *name; - int found; - struct opt_x_t *next; + char *filename; + int own_filename : 1; }; extern struct opt_p_t *opt_p; /* attach to process with a given pid */ -extern struct opt_e_t *opt_e; /* list of function names to display */ -extern int opt_e_enable; /* 0 if '!' is used, 1 otherwise */ - extern struct opt_F_t *opt_F; /* alternate configuration file(s) */ -extern struct opt_x_t *opt_x; /* list of functions to break at */ - extern char **process_options(int argc, char **argv); |