GDBserver

Classes | Enumerations | Functions | Variables
common-exceptions.c File Reference
`#include "common-defs.h"`
`#include "common-exceptions.h"`

Go to the source code of this file.

## Classes
struct | catcher

## Enumerations
enum | catcher_state { CATCHER_CREATED, CATCHER_RUNNING, CATCHER_RUNNING_1, CATCHER_ABORTING }
enum | catcher_action { CATCH_ITER, CATCH_ITER_1, CATCH_THROWING }

## Functions
jmp_buf * | exceptions_state_mc_init (void)
static void | catcher_pop (void)
static int | exceptions_state_mc (enum catcher_action action)
int | exceptions_state_mc_catch (struct gdb_exception *exception, int mask)
int | exceptions_state_mc_action_iter (void)
int | exceptions_state_mc_action_iter_1 (void)
void * | exception_try_scope_entry (void)
void | exception_try_scope_exit (void *saved_state)
void | exception_rethrow (void)
static void | gdb_exception_sliced_copy (struct gdb_exception *to, const struct gdb_exception *from)
void | throw_exception_sjlj (struct gdb_exception exception)
static ATTRIBUTE_NORETURN void | throw_exception_cxx (struct gdb_exception exception)
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)
void | throw_error (enum errors error, const char *fmt,...)
void | throw_quit (const char *fmt,...)

## Variables
const struct gdb_exception | exception_none = { (enum return_reason) 0, GDB_NO_ERROR, NULL }
static struct catcher * | current_catcher
static int | try_scope_depth
static char ** | exception_messages
static int | exception_messages_size

## Enumeration Type Documentation

## ◆ catcher_action

enum catcher_action

Enumerator
CATCH_ITER |
CATCH_ITER_1 |
CATCH_THROWING |

Definition at line 37 of file common-exceptions.c.

## ◆ catcher_state

enum catcher_state

Enumerator
CATCHER_CREATED |
CATCHER_RUNNING |
CATCHER_RUNNING_1 |
CATCHER_ABORTING |

Definition at line 26 of file common-exceptions.c.

## Function Documentation

## ◆ ATTRIBUTE_PRINTF()

static void ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF | ( | 3 | ,
|  | 0 |
| ) |  |
| static

Definition at line 336 of file common-exceptions.c.

References error(), gdb_exception::error, exception_messages, exception_messages_size, gdb_assert, memset(), gdb_exception::message, gdb_exception::reason, throw_exception(), try_scope_depth, xfree(), XRESIZEVEC, and xstrvprintf().

## ◆ catcher_pop()

static void catcher_pop | ( | void |  | ) |
| static

Definition at line 99 of file common-exceptions.c.

References current_catcher, catcher::prev, restore_cleanups(), catcher::saved_cleanup_chain, and xfree().

Referenced by exceptions_state_mc_catch().

## ◆ exception_rethrow()

void exception_rethrow | ( | void |  | ) |

Definition at line 249 of file common-exceptions.c.

References all_cleanups(), and do_cleanups().

## ◆ exception_try_scope_entry()

void* exception_try_scope_entry | ( | void |  | ) |

Definition at line 228 of file common-exceptions.c.

References save_cleanups(), and try_scope_depth.

Referenced by exception_try_scope::exception_try_scope().

## ◆ exception_try_scope_exit()

void exception_try_scope_exit | ( | void * | saved_state | ) |

Definition at line 238 of file common-exceptions.c.

References restore_cleanups(), and try_scope_depth.

Referenced by exception_try_scope::~exception_try_scope().

## ◆ exceptions_state_mc()

static int exceptions_state_mc | ( | enum catcher_action | action | ) |
| static

Definition at line 117 of file common-exceptions.c.

References _, CATCH_ITER, CATCH_ITER_1, CATCH_THROWING, CATCHER_ABORTING, CATCHER_CREATED, CATCHER_RUNNING, CATCHER_RUNNING_1, current_catcher, internal_error(), and catcher::state.

Referenced by exceptions_state_mc_action_iter(), exceptions_state_mc_action_iter_1(), and throw_exception_sjlj().

## ◆ exceptions_state_mc_action_iter()

int exceptions_state_mc_action_iter | ( | void |  | ) |

Definition at line 207 of file common-exceptions.c.

References CATCH_ITER, and exceptions_state_mc().

## ◆ exceptions_state_mc_action_iter_1()

int exceptions_state_mc_action_iter_1 | ( | void |  | ) |

Definition at line 213 of file common-exceptions.c.

References CATCH_ITER_1, and exceptions_state_mc().

## ◆ exceptions_state_mc_catch()

int exceptions_state_mc_catch | ( | struct gdb_exception * | exception,
|  | int | mask
| ) |  |

Definition at line 182 of file common-exceptions.c.

References catcher_pop(), current_catcher, catcher::exception, gdb_exception::reason, RETURN_MASK, and throw_exception_sjlj().

## ◆ exceptions_state_mc_init()

jmp_buf* exceptions_state_mc_init | ( | void |  | ) |

Definition at line 79 of file common-exceptions.c.

References catcher::buf, CATCHER_CREATED, current_catcher, catcher::exception, exception_none, catcher::prev, save_cleanups(), catcher::saved_cleanup_chain, catcher::state, and XCNEW.

## ◆ gdb_exception_sliced_copy()

static void gdb_exception_sliced_copy | ( | struct gdb_exception * | to,
|  | const struct gdb_exception * | from
| ) |  |
| static

Definition at line 260 of file common-exceptions.c.

Referenced by throw_exception_cxx().

## ◆ throw_error()

void throw_error | ( | enum errors | error,
|  | const char * | fmt,
|  |  | ...
| ) |  |

Definition at line 389 of file common-exceptions.c.

References error(), and throw_verror().

Referenced by regcache_raw_get_unsigned().

## ◆ throw_exception()

void throw_exception | ( | struct gdb_exception | exception | ) |

Definition at line 312 of file common-exceptions.c.

References catcher::exception, throw_exception_cxx(), and throw_exception_sjlj().

Referenced by ATTRIBUTE_PRINTF(), linux_detach_one_lwp(), and linux_resume_one_lwp().

## ◆ throw_exception_cxx()

static ATTRIBUTE_NORETURN void throw_exception_cxx | ( | struct gdb_exception | exception | ) |
| static

Definition at line 287 of file common-exceptions.c.

References all_cleanups(), do_cleanups(), catcher::exception, gdb_assert_not_reached, gdb_exception_sliced_copy(), gdb_exception::reason, RETURN_ERROR, and RETURN_QUIT.

Referenced by throw_exception().

## ◆ throw_exception_sjlj()

void throw_exception_sjlj | ( | struct gdb_exception | exception | ) |

Definition at line 270 of file common-exceptions.c.

References all_cleanups(), catcher::buf, CATCH_THROWING, current_catcher, do_cleanups(), catcher::exception, exceptions_state_mc(), and gdb_exception::reason.

Referenced by exceptions_state_mc_catch(), and throw_exception().

## ◆ throw_quit()

void throw_quit | ( | const char * | fmt,
|  |  | ...
| ) |  |

Definition at line 399 of file common-exceptions.c.

References throw_vquit().

Referenced by captured_main().

## ◆ throw_verror()

void throw_verror | ( | enum errors | error,
|  | const char * | fmt,
|  | va_list | ap
| ) |  |

Definition at line 377 of file common-exceptions.c.

References error(), and RETURN_ERROR.

Referenced by throw_error(), and verror().

## ◆ throw_vquit()

void throw_vquit | ( | const char * | fmt,
|  | va_list | ap
| ) |  |

Definition at line 383 of file common-exceptions.c.

References GDB_NO_ERROR, and RETURN_QUIT.

Referenced by throw_quit().

## Variable Documentation

## ◆ current_catcher

struct catcher* current_catcher
| static

Definition at line 56 of file common-exceptions.c.

Referenced by catcher_pop(), exceptions_state_mc(), exceptions_state_mc_catch(), exceptions_state_mc_init(), and throw_exception_sjlj().

## ◆ exception_messages

char** exception_messages
| static

Definition at line 331 of file common-exceptions.c.

Referenced by ATTRIBUTE_PRINTF().

## ◆ exception_messages_size

int exception_messages_size
| static

Definition at line 334 of file common-exceptions.c.

Referenced by ATTRIBUTE_PRINTF().

## ◆ exception_none

const struct gdb_exception exception_none = { (enum return_reason) 0, GDB_NO_ERROR, NULL }

Definition at line 23 of file common-exceptions.c.

Referenced by exceptions_state_mc_init().

## ◆ try_scope_depth

int try_scope_depth
| static

Definition at line 223 of file common-exceptions.c.

Referenced by ATTRIBUTE_PRINTF(), exception_try_scope_entry(), and exception_try_scope_exit().