#include <stdio.h>
#include <errno.h> /* System call error return status. */
#include <limits.h>
+#include <stdint.h>
#ifdef HAVE_STDDEF_H
#include <stddef.h>
[kingdon]. A profile analyzing the current situtation is
needed. */
-#ifdef QUIT
-/* do twice to force compiler warning */
-#define QUIT_FIXME "FIXME"
-#define QUIT_FIXME "ignoring redefinition of QUIT"
-#else
#define QUIT { \
if (quit_flag) quit (); \
if (deprecated_interactive_hook) deprecated_interactive_hook (); \
}
-#endif
/* Languages represented in the symbol table and elsewhere.
This should probably be in language.h, but since enum's can't
Use make_cleanup to add an element to the cleanup chain.
Use do_cleanups to do all cleanup actions back to a given
point in the chain. Use discard_cleanups to remove cleanups
- from the chain back to a given point, not doing them. */
+ from the chain back to a given point, not doing them.
+
+ If the argument is pointer to allocated memory, then you need to
+ to additionally set the 'free_arg' member to a function that will
+ free that memory. This function will be called both when the cleanup
+ is executed and when it's discarded. */
struct cleanup
{
struct cleanup *next;
void (*function) (void *);
+ void (*free_arg) (void *);
void *arg;
};
extern void do_cleanups (struct cleanup *);
extern void do_final_cleanups (struct cleanup *);
-extern void do_exec_cleanups (struct cleanup *);
extern void discard_cleanups (struct cleanup *);
extern void discard_final_cleanups (struct cleanup *);
extern struct cleanup *make_cleanup_bfd_close (bfd *abfd);
+extern struct cleanup *make_cleanup_restore_integer (int *variable);
+
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_exec_cleanup (make_cleanup_ftype *, void *);
+extern struct cleanup *make_my_cleanup2 (struct cleanup **,
+ make_cleanup_ftype *, void *,
+ void (*free_arg) (void *));
extern struct cleanup *save_cleanups (void);
extern struct cleanup *save_final_cleanups (void);
/* Display the host ADDR on STREAM formatted as ``0x%x''. */
extern void gdb_print_host_address (const void *addr, struct ui_file *stream);
+extern const char *host_address_to_string (const void *addr);
+
/* Convert a CORE_ADDR into a HEX string. paddr() is like %08lx.
paddr_nz() is like %lx. paddr_u() is like %lu. paddr_width() is
for ``%*''. */
extern char *paddr_u (CORE_ADDR addr);
extern char *paddr_d (LONGEST addr);
-/* Like 0x%lx, replaces deprecated_print_address_numeric. */
+/* Like 0x%lx. */
extern const char *paddress (CORE_ADDR addr);
extern char *phex (ULONGEST l, int sizeof_l);
int *line,
int *unmapped);
-extern void deprecated_print_address_numeric (CORE_ADDR, int, struct ui_file *);
-
extern void print_address (CORE_ADDR, struct ui_file *);
/* From source.c */
struct continuation
{
- void (*continuation_hook) (struct continuation_arg *);
+ void (*continuation_hook) (struct continuation_arg *, int);
struct continuation_arg *arg_list;
struct continuation *next;
};
extern struct continuation *intermediate_continuation;
/* From utils.c */
-extern void add_continuation (void (*)(struct continuation_arg *),
+extern void add_continuation (void (*)(struct continuation_arg *, int),
struct continuation_arg *);
-extern void do_all_continuations (void);
+extern void do_all_continuations (int error);
extern void discard_all_continuations (void);
-extern void add_intermediate_continuation (void (*)(struct continuation_arg *),
+extern void add_intermediate_continuation (void (*)(struct continuation_arg *, int),
struct continuation_arg *);
-extern void do_all_intermediate_continuations (void);
+extern void do_all_intermediate_continuations (int error);
extern void discard_all_intermediate_continuations (void);
/* String containing the current directory (what getwd would return). */
GDB_OSABI_CYGWIN,
GDB_OSABI_AIX,
+ GDB_OSABI_DICOS,
GDB_OSABI_INVALID /* keep this last */
};