GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "frame-unwind.h"
#include "gdbsupport/gdb_obstack.h"
#include "gdbcmd.h"
#include "language.h"
#include "observable.h"
#include "python-internal.h"
#include "regcache.h"
#include "valprint.h"
#include "user-regs.h"
#include "stack.h"
#include "charset.h"
#include "block.h"
Go to the source code of this file.
Classes | |
struct | pending_frame_object |
struct | saved_reg |
struct | unwind_info_object |
struct | cached_frame_info |
struct | pyuw_gdbarch_data_type |
Macros | |
#define | pyuw_debug_printf(fmt, ...) debug_prefixed_printf_cond (pyuw_debug, "py-unwind", fmt, ##__VA_ARGS__) |
#define | PYUW_SCOPED_DEBUG_ENTER_EXIT scoped_debug_enter_exit (pyuw_debug, "py-unwind") |
#define | PENDING_FRAMEPY_REQUIRE_VALID(pending_frame) |
Enumerations | |
enum class | pyuw_get_attr_code { ATTR_OK , ATTR_MISSING , ATTR_ERROR } |
Variables | |
static bool | pyuw_debug |
static const registry< gdbarch >::key< pyuw_gdbarch_data_type > | pyuw_gdbarch_data |
static PyMethodDef | pending_frame_object_methods [] |
PyTypeObject | pending_frame_object_type |
static PyMethodDef | unwind_info_object_methods [] |
PyTypeObject | unwind_info_object_type |
#define PENDING_FRAMEPY_REQUIRE_VALID | ( | pending_frame | ) |
Definition at line 60 of file py-unwind.c.
Referenced by pending_framepy_architecture(), pending_framepy_block(), pending_framepy_create_unwind_info(), pending_framepy_find_sal(), pending_framepy_function(), pending_framepy_language(), pending_framepy_level(), pending_framepy_name(), pending_framepy_pc(), and pending_framepy_read_register().
#define pyuw_debug_printf | ( | fmt, | |
... ) debug_prefixed_printf_cond (pyuw_debug, "py-unwind", fmt, ##__VA_ARGS__) |
Definition at line 51 of file py-unwind.c.
Referenced by pyuw_prev_register(), pyuw_sniffer(), and pyuw_this_id().
#define PYUW_SCOPED_DEBUG_ENTER_EXIT scoped_debug_enter_exit (pyuw_debug, "py-unwind") |
Definition at line 56 of file py-unwind.c.
Referenced by pyuw_dealloc_cache(), pyuw_prev_register(), and pyuw_sniffer().
|
strong |
Enumerator | |
---|---|
ATTR_OK | |
ATTR_MISSING | |
ATTR_ERROR |
Definition at line 138 of file py-unwind.c.
void _initialize_py_unwind | ( | ) |
Definition at line 995 of file py-unwind.c.
Referenced by initialize_all_files().
|
extern |
|
extern |
GDBPY_INITIALIZE_FILE | ( | gdbpy_initialize_unwind | ) |
|
static |
Definition at line 975 of file py-unwind.c.
References gdb::observers::architecture_changed, gdb_module, gdb_pymodule_addobject(), pending_frame_object_type, pyuw_on_new_gdbarch(), and unwind_info_object_type.
Definition at line 739 of file py-unwind.c.
References pending_frame_object::gdbarch, gdbarch_to_arch_object(), and PENDING_FRAMEPY_REQUIRE_VALID.
Definition at line 614 of file py-unwind.c.
References block_to_block_object(), pending_frame_object::frame_info, block::function(), GDB_PY_HANDLE_EXCEPTION, get_frame_block(), symbol::objfile(), and PENDING_FRAMEPY_REQUIRE_VALID.
|
static |
Definition at line 685 of file py-unwind.c.
References ATTR_ERROR, ATTR_MISSING, code, frame_id_build(), frame_id_build_special(), frame_id_build_wild(), gdb_PyArg_ParseTupleAndKeywords(), PENDING_FRAMEPY_REQUIRE_VALID, pyuw_create_unwind_info(), and pyuw_object_attribute_to_pointer().
Definition at line 587 of file py-unwind.c.
References find_frame_sal(), pending_frame_object::frame_info, GDB_PY_HANDLE_EXCEPTION, PENDING_FRAMEPY_REQUIRE_VALID, and symtab_and_line_to_sal_object().
Definition at line 654 of file py-unwind.c.
References find_frame_funname(), pending_frame_object::frame_info, GDB_PY_HANDLE_EXCEPTION, PENDING_FRAMEPY_REQUIRE_VALID, and symbol_to_symbol_object().
Definition at line 491 of file py-unwind.c.
References pending_frame_object::frame_info.
Definition at line 560 of file py-unwind.c.
References pending_frame_object::frame_info, GDB_PY_HANDLE_EXCEPTION, get_frame_language(), host_string_to_python_string(), language_def(), language_defn::name(), and PENDING_FRAMEPY_REQUIRE_VALID.
Definition at line 751 of file py-unwind.c.
References pending_frame_object::frame_info, frame_relative_level(), gdb_py_object_from_longest(), and PENDING_FRAMEPY_REQUIRE_VALID.
Definition at line 505 of file py-unwind.c.
References find_frame_funname(), pending_frame_object::frame_info, GDB_PY_HANDLE_EXCEPTION, host_charset(), name, and PENDING_FRAMEPY_REQUIRE_VALID.
Definition at line 536 of file py-unwind.c.
References pending_frame_object::frame_info, GDB_PY_HANDLE_EXCEPTION, gdb_py_object_from_ulongest(), get_frame_pc(), and PENDING_FRAMEPY_REQUIRE_VALID.
|
static |
Definition at line 446 of file py-unwind.c.
References pending_frame_object::frame_info, GDB_PY_HANDLE_EXCEPTION, gdb_PyArg_ParseTupleAndKeywords(), pending_frame_object::gdbarch, gdbpy_parse_register_id(), PENDING_FRAMEPY_REQUIRE_VALID, regnum, value_of_register(), and value_to_value_object().
Definition at line 414 of file py-unwind.c.
References pending_frame_object::frame_info, frame_relative_level(), GDB_PY_HANDLE_EXCEPTION, get_frame_pc(), and get_frame_sp().
Definition at line 390 of file py-unwind.c.
References GDB_PY_HANDLE_EXCEPTION, get_frame_pc(), and get_frame_sp().
|
static |
Definition at line 275 of file py-unwind.c.
References unwind_info_object::frame_id, unwind_info_object::pending_frame, unwind_info_object::saved_regs, and unwind_info_object_type.
Referenced by pending_framepy_create_unwind_info().
|
static |
Definition at line 925 of file py-unwind.c.
References cached_reg_t::data, PYUW_SCOPED_DEBUG_ENTER_EXIT, cached_frame_info::reg, cached_frame_info::reg_count, and xfree().
Referenced by pyuw_on_new_gdbarch().
|
static |
Definition at line 170 of file py-unwind.c.
References ATTR_ERROR, ATTR_MISSING, ATTR_OK, and get_addr_from_python().
Referenced by pending_framepy_create_unwind_info().
|
static |
Definition at line 948 of file py-unwind.c.
References frame_unwind::dealloc_cache, default_frame_unwind_stop_reason(), frame_unwind_prepend_unwinder(), GDBARCH_OBSTACK_ZALLOC, registry< T >::get(), frame_unwind::name, NORMAL_FRAME, frame_unwind::prev_register, pyuw_dealloc_cache(), pyuw_gdbarch_data, pyuw_prev_register(), pyuw_sniffer(), pyuw_this_id(), frame_unwind::sniffer, frame_unwind::stop_reason, frame_unwind::this_id, frame_unwind::type, and frame_unwind::unwind_data.
Referenced by gdbpy_initialize_unwind().
|
static |
Definition at line 774 of file py-unwind.c.
References cached_reg_t::data, frame_relative_level(), frame_unwind_got_bytes(), frame_unwind_got_optimized(), cached_reg_t::num, pyuw_debug_printf, PYUW_SCOPED_DEBUG_ENTER_EXIT, cached_frame_info::reg, cached_frame_info::reg_count, and regnum.
Referenced by pyuw_on_new_gdbarch().
|
static |
Definition at line 797 of file py-unwind.c.
References value::contents(), cached_reg_t::data, unwind_info_object::frame_id, cached_frame_info::frame_id, pending_frame_object::frame_info, frame_relative_level(), gdb_python_module, pending_frame_object::gdbarch, cached_frame_info::gdbarch, gdbpy_print_stack(), gdbpy_print_stack_or_quit(), get_frame_pc(), get_frame_sp(), type::length(), name, cached_reg_t::num, paddress(), pending_frame_object_type, python_string_to_host_string(), pyuw_debug, pyuw_debug_printf, PYUW_SCOPED_DEBUG_ENTER_EXIT, cached_frame_info::reg, value::reg, cached_frame_info::reg_count, register_size(), unwind_info_object::saved_regs, value::type(), frame_unwind::unwind_data, unwind_info_object_type, value_object_to_value(), and xmalloc().
Referenced by pyuw_on_new_gdbarch().
|
static |
Definition at line 764 of file py-unwind.c.
References pyuw_debug_printf, and frame_id::to_string().
Referenced by pyuw_on_new_gdbarch().
|
static |
Definition at line 43 of file py-unwind.c.
References gdb_printf().
|
static |
Definition at line 295 of file py-unwind.c.
References pending_frame_object::frame_info, gdb_PyArg_ParseTupleAndKeywords(), pending_frame_object::gdbarch, gdbarch_num_cooked_regs(), gdbpy_parse_register_id(), type::length(), value::lval(), lval_register, unwind_info_object::pending_frame, value::reg, register_size(), regnum, unwind_info_object::saved_regs, value::type(), value_object_to_value(), value_object_type, value_of_user_reg(), and VALUE_REGNUM.
|
static |
Definition at line 377 of file py-unwind.c.
References unwind_info_object::pending_frame, and unwind_info_object::saved_regs.
Definition at line 240 of file py-unwind.c.
References pending_frame_object::frame_info, frame_relative_level(), pending_frame_object::gdbarch, gdbarch_register_name(), name, unwind_info_object::pending_frame, and unwind_info_object::saved_regs.
Definition at line 198 of file py-unwind.c.
References string_file::c_str(), unwind_info_object::frame_id, GDB_PY_HANDLE_EXCEPTION, get_user_print_options(), ui_file::printf(), ui_file::puts(), value::reg, unwind_info_object::saved_regs, frame_id::to_string(), value_object_to_value(), and value_print().
|
static |
Definition at line 1011 of file py-unwind.c.
PyTypeObject pending_frame_object_type |
Definition at line 1054 of file py-unwind.c.
Referenced by gdbpy_initialize_unwind(), and pyuw_sniffer().
|
static |
Definition at line 38 of file py-unwind.c.
Referenced by pyuw_sniffer().
|
static |
Definition at line 942 of file py-unwind.c.
Referenced by pyuw_on_new_gdbarch().
|
static |
Definition at line 1095 of file py-unwind.c.
PyTypeObject unwind_info_object_type |
Definition at line 1105 of file py-unwind.c.
Referenced by gdbpy_initialize_unwind(), pyuw_create_unwind_info(), and pyuw_sniffer().