GDB (xrefs)
|
#include "defs.h"
#include "python-internal.h"
#include "breakpoint.h"
#include "frame.h"
#include "gdbthread.h"
#include "arch-utils.h"
#include "language.h"
#include "observer.h"
#include "inferior.h"
#include "block.h"
Go to the source code of this file.
Classes | |
struct | finish_breakpoint_object |
Functions | |
PyTypeObject finish_breakpoint_object_type | CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("finish_breakpoint_object") |
static PyObject * | bpfinishpy_get_returnvalue (PyObject *self, void *closure) |
static void | bpfinishpy_dealloc (PyObject *self) |
void | bpfinishpy_pre_stop_hook (struct gdbpy_breakpoint_object *bp_obj) |
void | bpfinishpy_post_stop_hook (struct gdbpy_breakpoint_object *bp_obj) |
static int | bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs) |
static void | bpfinishpy_out_of_scope (struct finish_breakpoint_object *bpfinish_obj) |
static int | bpfinishpy_detect_out_scope_cb (struct breakpoint *b, void *args) |
static void | bpfinishpy_handle_stop (struct bpstats *bs, int print_frame) |
static void | bpfinishpy_handle_exit (struct inferior *inf) |
int | gdbpy_initialize_finishbreakpoints (void) |
Variables | |
static char *const | outofscope_func = "out_of_scope" |
static PyGetSetDef | finish_breakpoint_object_getset [] |
PyTypeObject | finish_breakpoint_object_type |
|
static |
Definition at line 77 of file py-finishbreakpoint.c.
References finish_breakpoint_object::function_value, finish_breakpoint_object::return_type, and finish_breakpoint_object::return_value.
|
static |
Definition at line 357 of file py-finishbreakpoint.c.
References bpfinishpy_out_of_scope(), CATCH, current_inferior(), END_CATCH, frame_find_by_id(), breakpoint::frame_id, breakpoint::gdbarch, gdbpy_convert_exception(), gdbpy_print_stack(), get_current_arch(), gdbpy_breakpoint_object::is_finish_bp, inferior::pspace, breakpoint::pspace, breakpoint::py_bp_object, RETURN_MASK_ALL, target_has_registers, and TRY.
Referenced by bpfinishpy_handle_exit(), and bpfinishpy_handle_stop().
|
static |
Definition at line 62 of file py-finishbreakpoint.c.
References finish_breakpoint_object::return_value.
|
static |
Definition at line 411 of file py-finishbreakpoint.c.
References bpfinishpy_detect_out_scope_cb(), current_language, do_cleanups(), ensure_python_env(), iterate_over_breakpoints(), and target_gdbarch().
Referenced by gdbpy_initialize_finishbreakpoints().
Definition at line 396 of file py-finishbreakpoint.c.
References bpfinishpy_detect_out_scope_cb(), bpstats::breakpoint_at, current_language, do_cleanups(), ensure_python_env(), get_current_arch(), and iterate_over_breakpoints().
Referenced by gdbpy_initialize_finishbreakpoints().
|
static |
Definition at line 158 of file py-finishbreakpoint.c.
References _, AUTO_BOOLEAN_TRUE, bkpt_breakpoint_ops, gdbpy_breakpoint_object::bp, bp_breakpoint, bppy_pending_object, CATCH, create_breakpoint(), current_program_space, DUMMY_FRAME, END_CATCH, find_pc_function(), value::frame_id, breakpoint::frame_id, frame_id_eq(), frame_object_to_frame_info(), finish_breakpoint_object::function_value, GDB_PY_SET_HANDLE_EXCEPTION, gdbpy_convert_exception(), get_current_frame(), get_frame_id(), get_frame_pc(), get_frame_pc_if_available(), get_frame_type(), get_prev_frame(), hex_string(), inferior_ptid, gdbpy_breakpoint_object::is_finish_bp, null_frame_id, gdbpy_breakpoint_object::number, pid_to_thread_id(), breakpoint::pspace, finish_breakpoint_object::py_bp, python_gdbarch, read_var_value(), RETURN_MASK_ALL, finish_breakpoint_object::return_type, SYMBOL_TYPE, TRY, TYPE_CODE, TYPE_CODE_VOID, TYPE_TARGET_TYPE, type_to_type_object(), value_to_value_object(), and xsnprintf().
|
static |
Definition at line 334 of file py-finishbreakpoint.c.
References gdbpy_breakpoint_object::bp, bp_enabled, delete_breakpoint(), breakpoint::enable_state, gdbpy_print_stack(), outofscope_func, finish_breakpoint_object::py_bp, and PyObject_HasAttrString.
Referenced by bpfinishpy_detect_out_scope_cb().
void bpfinishpy_post_stop_hook | ( | struct gdbpy_breakpoint_object * | bp_obj | ) |
Definition at line 138 of file py-finishbreakpoint.c.
References gdbpy_breakpoint_object::bp, CATCH, disable_breakpoint(), disp_del, breakpoint::disposition, END_CATCH, gdb_assert, gdbpy_convert_exception(), gdbpy_print_stack(), RETURN_MASK_ALL, and TRY.
Referenced by gdbpy_breakpoint_cond_says_stop().
void bpfinishpy_pre_stop_hook | ( | struct gdbpy_breakpoint_object * | bp_obj | ) |
Definition at line 92 of file py-finishbreakpoint.c.
References CATCH, END_CATCH, finish_breakpoint_object::function_value, gdb_assert, gdbpy_convert_exception(), gdbpy_print_stack(), get_return_value(), RETURN_MASK_ALL, finish_breakpoint_object::return_type, finish_breakpoint_object::return_value, TRY, type_object_to_type(), value_object_to_value(), value_to_value_object(), and value_type().
Referenced by gdbpy_breakpoint_cond_says_stop().
PyTypeObject finish_breakpoint_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF | ( | "finish_breakpoint_object" | ) |
int gdbpy_initialize_finishbreakpoints | ( | void | ) |
Definition at line 424 of file py-finishbreakpoint.c.
References bpfinishpy_handle_exit(), bpfinishpy_handle_stop(), finish_breakpoint_object_type, gdb_module, gdb_pymodule_addobject(), observer_attach_inferior_exit(), and observer_attach_normal_stop().
Referenced by _initialize_python().
|
static |
Definition at line 439 of file py-finishbreakpoint.c.
PyTypeObject finish_breakpoint_object_type |
Definition at line 446 of file py-finishbreakpoint.c.
Referenced by gdbpy_initialize_finishbreakpoints().
|
static |
Definition at line 34 of file py-finishbreakpoint.c.
Referenced by bpfinishpy_out_of_scope().