68 for (size = 0, catcher = current_catcher;
70 catcher = catcher->
prev)
90 current_catcher = new_catcher;
93 return &new_catcher->
buf;
101 current_catcher = old_catcher->
prev;
117 switch (current_catcher->
state)
186 if (exception->
reason < 0)
221 static int try_scope_depth;
226 exception_try_scope_entry (
void)
236 exception_try_scope_exit (
void *saved_state)
247 exception_rethrow (
void)
285 gdb_exception_RETURN_MASK_QUIT ex;
287 gdb_exception_sliced_copy (&ex, &exception);
292 gdb_exception_RETURN_MASK_ERROR ex;
294 gdb_exception_sliced_copy (&ex, &exception);
326 int depth = try_scope_depth;
334 if (depth > exception_messages_size)
338 exception_messages_size = depth + 10;
339 exception_messages = (
char **)
xrealloc (exception_messages,
340 exception_messages_size
342 memset (exception_messages + old_size, 0,
343 (exception_messages_size - old_size) *
sizeof (
char *));
346 xfree (exception_messages[depth - 1]);
347 exception_messages[depth - 1] = new_message;
375 va_start (args, fmt);
385 va_start (args, fmt);
static int catcher_list_size(void)
char * xstrvprintf(const char *format, va_list ap)
struct type ** const(pascal_builtin_types[])
SIGJMP_BUF * exceptions_state_mc_init(void)
#define RETURN_MASK(reason)
int exceptions_state_mc_action_iter(void)
void internal_error(const char *file, int line, const char *fmt,...)
const struct gdb_exception exception_none
void restore_cleanups(struct cleanup *chain)
static int exceptions_state_mc(enum catcher_action action)
struct gdb_exception exception
struct cleanup * all_cleanups(void)
struct cleanup * save_cleanups(void)
#define SIGLONGJMP(buf, val)
static void catcher_pop(void)
#define gdb_assert_not_reached(message)
int exceptions_state_mc_action_iter_1(void)
static struct catcher * current_catcher
static int exception_messages_size
int exceptions_state_mc_catch(struct gdb_exception *exception, int mask)
void prepare_to_throw_exception(void)
PTR xrealloc(PTR ptr, size_t size)
void throw_exception(struct gdb_exception exception)
static void ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF(3, 0)
void throw_verror(enum errors error, const char *fmt, va_list ap)
void throw_vquit(const char *fmt, va_list ap)
struct cleanup * saved_cleanup_chain
static char ** exception_messages
void throw_quit(const char *fmt,...)
void error(const char *fmt,...)
void throw_error(enum errors error, const char *fmt,...)
void do_cleanups(struct cleanup *old_chain)
enum return_reason reason