GDB (xrefs)
|
#include "defs.h"
#include "exceptions.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.
static void bpfinishpy_dealloc | ( | PyObject * | self | ) | [static] |
Definition at line 78 of file py-finishbreakpoint.c.
References finish_breakpoint_object::function_value, finish_breakpoint_object::return_type, and finish_breakpoint_object::return_value.
static int bpfinishpy_detect_out_scope_cb | ( | struct breakpoint * | b, |
void * | args | ||
) | [static] |
Definition at line 344 of file py-finishbreakpoint.c.
References bpfinishpy_out_of_scope(), current_inferior(), frame_find_by_id(), breakpoint::frame_id, breakpoint::gdbarch, gdbpy_convert_exception(), gdbpy_print_stack(), get_current_arch(), breakpoint_object::is_finish_bp, breakpoint::pspace, breakpoint::py_bp_object, gdb_exception::reason, RETURN_MASK_ALL, target_has_registers, and TRY_CATCH.
Referenced by bpfinishpy_handle_exit(), and bpfinishpy_handle_stop().
static PyObject* bpfinishpy_get_returnvalue | ( | PyObject * | self, |
void * | closure | ||
) | [static] |
Definition at line 63 of file py-finishbreakpoint.c.
References finish_breakpoint_object::return_value.
static void bpfinishpy_handle_exit | ( | struct inferior * | inf | ) | [static] |
Definition at line 398 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().
static void bpfinishpy_handle_stop | ( | struct bpstats * | bs, |
int | print_frame | ||
) | [static] |
Definition at line 383 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 int bpfinishpy_init | ( | PyObject * | self, |
PyObject * | args, | ||
PyObject * | kwargs | ||
) | [static] |
Definition at line 156 of file py-finishbreakpoint.c.
References _, AUTO_BOOLEAN_TRUE, bkpt_breakpoint_ops, breakpoint_object::bp, bp_breakpoint, bppy_pending_object, create_breakpoint(), current_program_space, DUMMY_FRAME, 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, breakpoint_object::is_finish_bp, null_frame_id, breakpoint_object::number, pid_to_thread_id(), breakpoint::pspace, finish_breakpoint_object::py_bp, python_gdbarch, read_var_value(), gdb_exception::reason, RETURN_MASK_ALL, finish_breakpoint_object::return_type, SYMBOL_TYPE, TRY_CATCH, TYPE_CODE, TYPE_CODE_VOID, TYPE_TARGET_TYPE, type_to_type_object(), value_to_value_object(), and xsnprintf().
static void bpfinishpy_out_of_scope | ( | struct finish_breakpoint_object * | bpfinish_obj | ) | [static] |
Definition at line 321 of file py-finishbreakpoint.c.
References breakpoint_object::bp, bp_enabled, delete_breakpoint(), breakpoint::enable_state, gdbpy_print_stack(), outofscope_func, and finish_breakpoint_object::py_bp.
Referenced by bpfinishpy_detect_out_scope_cb().
void bpfinishpy_post_stop_hook | ( | struct breakpoint_object * | bp_obj | ) |
Definition at line 136 of file py-finishbreakpoint.c.
References breakpoint_object::bp, disable_breakpoint(), disp_del, breakpoint::disposition, gdb_assert, gdbpy_convert_exception(), gdbpy_print_stack(), gdb_exception::reason, RETURN_MASK_ALL, and TRY_CATCH.
Referenced by gdbpy_should_stop().
void bpfinishpy_pre_stop_hook | ( | struct breakpoint_object * | bp_obj | ) |
Definition at line 93 of file py-finishbreakpoint.c.
References finish_breakpoint_object::function_value, gdb_assert, gdbpy_convert_exception(), gdbpy_print_stack(), get_return_value(), gdb_exception::reason, RETURN_MASK_ALL, finish_breakpoint_object::return_type, finish_breakpoint_object::return_value, TRY_CATCH, type_object_to_type(), value_object_to_value(), value_to_value_object(), and value_type().
Referenced by gdbpy_should_stop().
static PyTypeObject finish_breakpoint_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF | ( | "finish_breakpoint_object" | ) | [static] |
int gdbpy_initialize_finishbreakpoints | ( | void | ) |
Definition at line 411 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().
PyGetSetDef finish_breakpoint_object_getset[] [static] |
{ { "return_value", bpfinishpy_get_returnvalue, NULL, "gdb.Value object representing the return value, if any. \ None otherwise.", NULL }, { NULL } }
Definition at line 426 of file py-finishbreakpoint.c.
PyTypeObject finish_breakpoint_object_type [static] |
Definition at line 433 of file py-finishbreakpoint.c.
Referenced by gdbpy_initialize_finishbreakpoints().
char* const outofscope_func = "out_of_scope" [static] |
Definition at line 35 of file py-finishbreakpoint.c.
Referenced by bpfinishpy_out_of_scope().