X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fdefs.h;h=a97487a480247915bc82bf7542eeffb2a26686f0;hb=33fbcbee30e6565db27a4c5076ff61c9fc8e0744;hp=7deee6927ac5dab8814a6677b098df7f0f0ec849;hpb=b0f260d61e5b5b3de1fcac6042f4b225bf132d45;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/defs.h b/gdb/defs.h index 7deee6927a..a97487a480 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -1,9 +1,8 @@ /* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF confuses indent, avoid running it for now. */ /* Basic, host-specific, and target-specific definitions for GDB. - Copyright (C) 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, - 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 1986, 1988-2005, 2007-2012 Free Software Foundation, + Inc. This file is part of GDB. @@ -23,6 +22,10 @@ #ifndef DEFS_H #define DEFS_H +#ifdef GDBSERVER +# error gdbserver should not include gdb/defs.h +#endif + #include "config.h" /* Generated by configure. */ #include @@ -89,6 +92,7 @@ #include /* For va_list. */ #include "libiberty.h" +#include "hashtab.h" /* Rather than duplicate all the logic in BFD for figuring out what types to use (which can be pretty complicated), symply define them @@ -142,8 +146,7 @@ typedef bfd_vma CORE_ADDR; #define max(a, b) ((a) > (b) ? (a) : (b)) #endif -/* Check if a character is one of the commonly used C++ marker characters. */ -extern int is_cplus_marker (int); +#include "ptid.h" /* Enable xdb commands if set. */ extern int xdb_commands; @@ -271,9 +274,10 @@ struct cleanup void *arg; }; -/* vec.h-style vectors of strings want a typedef for char * . */ +/* vec.h-style vectors of strings want a typedef for char * or const char *. */ typedef char * char_ptr; +typedef const char * const_char_ptr; /* Needed for various prototypes */ @@ -332,6 +336,9 @@ extern struct cleanup *make_cleanup_dtor (make_cleanup_ftype *, void *, extern struct cleanup *make_cleanup_freeargv (char **); +struct dyn_string; +extern struct cleanup *make_cleanup_dyn_string_delete (struct dyn_string *); + struct ui_file; extern struct cleanup *make_cleanup_ui_file_delete (struct ui_file *); @@ -364,11 +371,16 @@ extern struct cleanup * extern struct cleanup *make_cleanup_value_free_to_mark (struct value *); extern struct cleanup *make_cleanup_value_free (struct value *); +struct so_list; +extern struct cleanup *make_cleanup_free_so (struct so_list *so); + extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *); extern struct cleanup *make_my_cleanup (struct cleanup **, make_cleanup_ftype *, void *); +extern struct cleanup *make_cleanup_htab_delete (htab_t htab); + extern struct cleanup *make_my_cleanup2 (struct cleanup **, make_cleanup_ftype *, void *, void (*free_arg) (void *)); @@ -412,6 +424,7 @@ char *ldirname (const char *filename); char **gdb_buildargv (const char *); int compare_positive_ints (const void *ap, const void *bp); +int compare_strings (const void *ap, const void *bp); /* A wrapper for bfd_errmsg to produce a more helpful error message in the case of bfd_error_file_ambiguously recognized. @@ -422,9 +435,13 @@ extern const char *gdb_bfd_errmsg (bfd_error_type error_tag, char **matching); extern int parse_pid_to_attach (char *args); -/* From demangle.c */ +extern struct cleanup *make_bpstat_clear_actions_cleanup (void); + +extern int producer_is_gcc_ge_4 (const char *producer); -extern void set_demangling_style (char *); +#ifdef HAVE_WAITPID +extern pid_t wait_to_die_with_timeout (pid_t pid, int *status, int timeout); +#endif /* Annotation stuff. */ @@ -539,6 +556,11 @@ extern const char *paddress (struct gdbarch *gdbarch, CORE_ADDR addr); extern const char *print_core_address (struct gdbarch *gdbarch, CORE_ADDR address); +/* Callback hash_f and eq_f for htab_create_alloc or htab_create_alloc_ex. */ + +extern hashval_t core_addr_hash (const void *ap); +extern int core_addr_eq (const void *ap, const void *bp); + /* %d for LONGEST */ extern char *plongest (LONGEST l); /* %u for ULONGEST */ @@ -560,7 +582,7 @@ extern CORE_ADDR string_to_core_addr (const char *my_string); extern char *hex_string (LONGEST); extern char *hex_string_custom (LONGEST, int); -extern void fprintf_symbol_filtered (struct ui_file *, char *, +extern void fprintf_symbol_filtered (struct ui_file *, const char *, enum language, int); extern void perror_with_name (const char *) ATTRIBUTE_NORETURN; @@ -730,51 +752,34 @@ extern struct command_line *read_command_lines_1 (char * (*) (void), int, extern void free_command_lines (struct command_line **); -/* To continue the execution commands when running gdb asynchronously. - A continuation structure contains a pointer to a function to be called - to finish the command, once the target has stopped. Such mechanism is - used by the finish and until commands, and in the remote protocol - when opening an extended-remote connection. */ - -struct continuation; -struct thread_info; -struct inferior; +/* Parameters of the "info proc" command. */ -/* From continuations.c */ +enum info_proc_what + { + /* Display the default cmdline, cwd and exe outputs. */ + IP_MINIMAL, -/* Prototype of the continuation callback functions. */ -typedef void (continuation_ftype) (void *); + /* Display `info proc mappings'. */ + IP_MAPPINGS, -/* Prototype of the function responsible for releasing the argument - passed to the continuation callback functions, either when the - continuation is called, or discarded. */ -typedef void (continuation_free_arg_ftype) (void *); + /* Display `info proc status'. */ + IP_STATUS, -/* Thread specific continuations. */ + /* Display `info proc stat'. */ + IP_STAT, -extern void add_continuation (struct thread_info *, - continuation_ftype *, void *, - continuation_free_arg_ftype *); -extern void do_all_continuations (void); -extern void do_all_continuations_thread (struct thread_info *); -extern void discard_all_continuations (void); -extern void discard_all_continuations_thread (struct thread_info *); + /* Display `info proc cmdline'. */ + IP_CMDLINE, -extern void add_intermediate_continuation (struct thread_info *, - continuation_ftype *, void *, - continuation_free_arg_ftype *); -extern void do_all_intermediate_continuations (void); -extern void do_all_intermediate_continuations_thread (struct thread_info *); -extern void discard_all_intermediate_continuations (void); -extern void discard_all_intermediate_continuations_thread (struct thread_info *); + /* Display `info proc exe'. */ + IP_EXE, -/* Inferior specific (any thread) continuations. */ + /* Display `info proc cwd'. */ + IP_CWD, -extern void add_inferior_continuation (continuation_ftype *, - void *, - continuation_free_arg_ftype *); -extern void do_all_inferior_continuations (void); -extern void discard_all_inferior_continuations (struct inferior *inf); + /* Display all of the above. */ + IP_ALL + }; /* String containing the current directory (what getwd would return). */ @@ -798,41 +803,6 @@ enum val_prettyprint Val_pretty_default }; -/* The ptid struct is a collection of the various "ids" necessary - for identifying the inferior. This consists of the process id - (pid), thread id (tid), and other fields necessary for uniquely - identifying the inferior process/thread being debugged. When - manipulating ptids, the constructors, accessors, and predicate - declared in inferior.h should be used. These are as follows: - - ptid_build - Make a new ptid from a pid, lwp, and tid. - pid_to_ptid - Make a new ptid from just a pid. - ptid_get_pid - Fetch the pid component of a ptid. - ptid_get_lwp - Fetch the lwp component of a ptid. - ptid_get_tid - Fetch the tid component of a ptid. - ptid_equal - Test to see if two ptids are equal. - ptid_is_pid - Test to see if this ptid represents a process id. - - Please do NOT access the struct ptid members directly (except, of - course, in the implementation of the above ptid manipulation - functions). */ - -struct ptid - { - /* Process id */ - int pid; - - /* Lightweight process id */ - long lwp; - - /* Thread id */ - long tid; - }; - -typedef struct ptid ptid_t; - - - /* Optional native machine support. Non-native (and possibly pure multi-arch) targets do not need a "nm.h" file. This will be a symlink to one of the nm-*.h files, built by the `configure' @@ -896,13 +866,6 @@ extern int longest_to_int (LONGEST); extern char *savestring (const char *, size_t); -/* xmalloc(), xrealloc() and xcalloc() have already been declared in - "libiberty.h". */ -extern void xfree (void *); - -/* Like xmalloc, but zero the memory. */ -extern void *xzalloc (size_t); - /* Utility macros to allocate typed memory. Avoids errors like: struct foo *foo = xmalloc (sizeof struct bar); and memset (foo, sizeof (struct foo), 0). */ @@ -910,22 +873,7 @@ extern void *xzalloc (size_t); #define XMALLOC(TYPE) ((TYPE*) xmalloc (sizeof (TYPE))) #define XCALLOC(NMEMB, TYPE) ((TYPE*) xcalloc ((NMEMB), sizeof (TYPE))) -/* Like asprintf/vasprintf but get an internal_error if the call - fails. */ -extern void xasprintf (char **ret, const char *format, ...) - ATTRIBUTE_PRINTF (2, 3); -extern void xvasprintf (char **ret, const char *format, va_list ap) - ATTRIBUTE_PRINTF (2, 0); - -/* Like asprintf and vasprintf, but return the string, throw an error - if no memory. */ -extern char *xstrprintf (const char *format, ...) ATTRIBUTE_PRINTF (1, 2); -extern char *xstrvprintf (const char *format, va_list ap) - ATTRIBUTE_PRINTF (1, 0); - -/* Like snprintf, but throw an error if the output buffer is too small. */ -extern int xsnprintf (char *str, size_t size, const char *format, ...) - ATTRIBUTE_PRINTF (3, 4); +#include "common-utils.h" extern int parse_escape (struct gdbarch *, char **); @@ -959,9 +907,6 @@ extern void internal_verror (const char *file, int line, const char *, va_list ap) ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0); -extern void internal_error (const char *file, int line, const char *, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 4); - extern void internal_vwarning (const char *file, int line, const char *, va_list ap) ATTRIBUTE_PRINTF (3, 0); @@ -969,8 +914,6 @@ extern void internal_vwarning (const char *file, int line, extern void internal_warning (const char *file, int line, const char *, ...) ATTRIBUTE_PRINTF (3, 4); -extern void nomem (long) ATTRIBUTE_NORETURN; - extern void warning (const char *, ...) ATTRIBUTE_PRINTF (1, 2); extern void vwarning (const char *, va_list args) ATTRIBUTE_PRINTF (1, 0);