GDB (xrefs)

Enumerations | Functions
py-framefilter.c File Reference
`#include "defs.h"`
`#include "objfiles.h"`
`#include "symtab.h"`
`#include "language.h"`
`#include "arch-utils.h"`
`#include "python.h"`
`#include "ui-out.h"`
`#include "valprint.h"`
`#include "annotate.h"`
`#include "hashtab.h"`
`#include "demangle.h"`
`#include "mi/mi-cmds.h"`
`#include "python-internal.h"`
`#include "py-ref.h"`
`#include "common/gdb_optional.h"`

Go to the source code of this file.

## Enumerations
enum | mi_print_types { MI_PRINT_ARGS, MI_PRINT_LOCALS }

## Functions
static enum ext_lang_bt_status | extract_sym (PyObject *obj, gdb::unique_xmalloc_ptr< char > *name, struct symbol **sym, struct block **sym_block, const struct language_defn **language)
static enum ext_lang_bt_status | extract_value (PyObject *obj, struct value **value)
static int | mi_should_print (struct symbol *sym, enum mi_print_types type)
static enum ext_lang_bt_status | py_print_type (struct ui_out *out, struct value *val)
static enum ext_lang_bt_status | py_print_value (struct ui_out *out, struct value *val, const struct value_print_options *opts, int indent, enum ext_lang_frame_args args_type, const struct language_defn *language)
static PyObject * | get_py_iter_from_func (PyObject *filter, const char *func)
static enum ext_lang_bt_status | py_print_single_arg (struct ui_out *out, const char *sym_name, struct frame_arg *fa, struct value *fv, const struct value_print_options *opts, enum ext_lang_frame_args args_type, int print_args_field, const struct language_defn *language)
static enum ext_lang_bt_status | enumerate_args (PyObject *iter, struct ui_out *out, enum ext_lang_frame_args args_type, int print_args_field, struct frame_info *frame)
static enum ext_lang_bt_status | enumerate_locals (PyObject *iter, struct ui_out *out, int indent, enum ext_lang_frame_args args_type, int print_args_field, struct frame_info *frame)
static enum ext_lang_bt_status | py_mi_print_variables (PyObject *filter, struct ui_out *out, struct value_print_options *opts, enum ext_lang_frame_args args_type, struct frame_info *frame)
static enum ext_lang_bt_status | py_print_locals (PyObject *filter, struct ui_out *out, enum ext_lang_frame_args args_type, int indent, struct frame_info *frame)
static enum ext_lang_bt_status | py_print_args (PyObject *filter, struct ui_out *out, enum ext_lang_frame_args args_type, struct frame_info *frame)
static enum ext_lang_bt_status | py_print_frame (PyObject *filter, int flags, enum ext_lang_frame_args args_type, struct ui_out *out, int indent, htab_t levels_printed)
static PyObject * | bootstrap_python_frame_filters (struct frame_info *frame, int frame_low, int frame_high)
enum ext_lang_bt_status | gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, struct frame_info *frame, int flags, enum ext_lang_frame_args args_type, struct ui_out *out, int frame_low, int frame_high)

## Enumeration Type Documentation

## ◆ mi_print_types

enum mi_print_types

Enumerator
MI_PRINT_ARGS |
MI_PRINT_LOCALS |

Definition at line 36 of file py-framefilter.c.

## Function Documentation

## ◆ bootstrap_python_frame_filters()

static PyObject* bootstrap_python_frame_filters | ( | struct frame_info * | frame,
|  | int | frame_low,
|  | int | frame_high
| ) |  |
| static

Definition at line 1280 of file py-framefilter.c.

References frame_info_to_frame_object(), gdb::ref_ptr< T, Policy >::get(), PyObject_GetAttrString, and gdb::ref_ptr< T, Policy >::release().

Referenced by gdbpy_apply_frame_filter().

## ◆ enumerate_args()

static enum ext_lang_bt_status enumerate_args | ( | PyObject * | iter,
|  | struct ui_out * | out,
|  | enum ext_lang_frame_args | args_type,
|  | int | print_args_field,
|  | struct frame_info * | frame
| ) |  |
| static

Definition at line 478 of file py-framefilter.c.

References _, annotate_arg_end(), annotate_frame_args(), CATCH, CLI_SCALAR_VALUES, value_print_options::deref_ref, END_CATCH, frame_arg::entry_kind, frame_arg::error, EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, extract_sym(), extract_value(), gdbpy_convert_exception(), get_user_print_options(), ui_out::is_mi_like_p(), MI_PRINT_ARGS, mi_should_print(), print_entry_values_no, print_entry_values_only, py_print_single_arg(), read_frame_arg(), RETURN_MASK_ALL, value_print_options::summary, frame_arg::sym, ui_out::text(), TRY, frame_arg::val, ui_out::wrap_hint(), and xfree().

Referenced by py_mi_print_variables(), and py_print_args().

## ◆ enumerate_locals()

static enum ext_lang_bt_status enumerate_locals | ( | PyObject * | iter,
|  | struct ui_out * | out,
|  | int | indent,
|  | enum ext_lang_frame_args | args_type,
|  | int | print_args_field,
|  | struct frame_info * | frame
| ) |  |
| static

Definition at line 673 of file py-framefilter.c.

References CATCH, value_print_options::deref_ref, gdb::optional< T >::emplace(), END_CATCH, EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, extract_sym(), extract_value(), ui_out::field_string(), gdbpy_convert_exception(), gdb::ref_ptr< T, Policy >::get(), get_user_print_options(), ui_out::is_mi_like_p(), MI_PRINT_LOCALS, MI_PRINT_SIMPLE_VALUES, mi_should_print(), NO_VALUES, py_print_type(), py_print_value(), read_var_value(), RETURN_MASK_ERROR, ui_out::spaces(), ui_out::text(), and TRY.

Referenced by py_mi_print_variables(), and py_print_locals().

## ◆ extract_sym()

static enum ext_lang_bt_status extract_sym | ( | PyObject * | obj,
|  | gdb::unique_xmalloc_ptr< char > * | name,
|  | struct symbol ** | sym,
|  | struct block ** | sym_block,
|  | const struct language_defn ** | language
| ) |  |
| static

Definition at line 57 of file py-framefilter.c.

References _, current_language, EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, gdbpy_is_string(), gdb::ref_ptr< T, Policy >::get(), language_def(), language_mode_auto, name, PyObject_CallMethod, python_language, python_string_to_host_string(), SYMBOL_LANGUAGE, symbol_object_to_symbol(), and SYMBOL_PRINT_NAME.

Referenced by enumerate_args(), and enumerate_locals().

## ◆ extract_value()

static enum ext_lang_bt_status extract_value | ( | PyObject * | obj,
|  | struct value ** | value
| ) |  |
| static

Definition at line 128 of file py-framefilter.c.

References convert_value_from_python(), EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, gdb::ref_ptr< T, Policy >::get(), PyObject_CallMethod, and PyObject_HasAttrString.

Referenced by enumerate_args(), and enumerate_locals().

## ◆ gdbpy_apply_frame_filter()

enum ext_lang_bt_status gdbpy_apply_frame_filter | ( | const struct extension_language_defn * | extlang,
|  | struct frame_info * | frame,
|  | int | flags,
|  | enum ext_lang_frame_args | args_type,
|  | struct ui_out * | out,
|  | int | frame_low,
|  | int | frame_high
| ) |  |

Definition at line 1334 of file py-framefilter.c.

References bootstrap_python_frame_filters(), CATCH, current_language, END_CATCH, EXT_LANG_BT_ERROR, EXT_LANG_BT_NO_FILTERS, flags, gdb_python_initialized, gdbpy_print_stack(), gdb::ref_ptr< T, Policy >::get(), get_frame_arch(), py_print_frame(), RETURN_MASK_ALL, and TRY.

## ◆ get_py_iter_from_func()

static PyObject* get_py_iter_from_func | ( | PyObject * | filter,
|  | const char * | func
| ) |  |
| static

Definition at line 304 of file py-framefilter.c.

References func, gdb::ref_ptr< T, Policy >::get(), PyObject_CallMethod, PyObject_HasAttrString, and gdb::ref_ptr< T, Policy >::release().

Referenced by py_mi_print_variables(), py_print_args(), py_print_frame(), and py_print_locals().

## ◆ mi_should_print()

static int mi_should_print | ( | struct symbol * | sym,
|  | enum mi_print_types | type
| ) |  |
| static

Definition at line 166 of file py-framefilter.c.

References LOC_ARG, LOC_BLOCK, LOC_COMPUTED, LOC_CONST, LOC_CONST_BYTES, LOC_LABEL, LOC_LOCAL, LOC_OPTIMIZED_OUT, LOC_REF_ARG, LOC_REGISTER, LOC_REGPARM_ADDR, LOC_STATIC, LOC_TYPEDEF, LOC_UNDEF, LOC_UNRESOLVED, MI_PRINT_LOCALS, SYMBOL_CLASS, and SYMBOL_IS_ARGUMENT.

Referenced by enumerate_args(), and enumerate_locals().

## ◆ py_mi_print_variables()

static enum ext_lang_bt_status py_mi_print_variables | ( | PyObject * | filter,
|  | struct ui_out * | out,
|  | struct value_print_options * | opts,
|  | enum ext_lang_frame_args | args_type,
|  | struct frame_info * | frame
| ) |  |
| static

Definition at line 804 of file py-framefilter.c.

References enumerate_args(), enumerate_locals(), EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, gdb::ref_ptr< T, Policy >::get(), and get_py_iter_from_func().

Referenced by py_print_frame().

## ◆ py_print_args()

static enum ext_lang_bt_status py_print_args | ( | PyObject * | filter,
|  | struct ui_out * | out,
|  | enum ext_lang_frame_args | args_type,
|  | struct frame_info * | frame
| ) |  |
| static

Definition at line 863 of file py-framefilter.c.

References annotate_frame_args(), CATCH, END_CATCH, enumerate_args(), EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, gdbpy_convert_exception(), gdb::ref_ptr< T, Policy >::get(), get_py_iter_from_func(), ui_out::is_mi_like_p(), RETURN_MASK_ALL, ui_out::text(), and TRY.

Referenced by py_print_frame().

## ◆ py_print_frame()

static enum ext_lang_bt_status py_print_frame | ( | PyObject * | filter,
|  | int | flags,
|  | enum ext_lang_frame_args | args_type,
|  | struct ui_out * | out,
|  | int | indent,
|  | htab_t | levels_printed
| ) |  |
| static

Definition at line 923 of file py-framefilter.c.

References _, frame_info::addr, value_print_options::addressprint, annotate_frame_address(), annotate_frame_address_end(), annotate_frame_begin(), annotate_frame_end(), annotate_frame_function_name(), annotate_frame_source_begin(), annotate_frame_source_file(), annotate_frame_source_file_end(), annotate_frame_source_line(), CATCH, gdb::optional< T >::emplace(), END_CATCH, EXT_LANG_BT_COMPLETED, EXT_LANG_BT_ERROR, ui_out::field_core_addr(), ui_out::field_fmt_int(), ui_out::field_int(), ui_out::field_skip(), ui_out::field_string(), flags, frame_object_to_frame_info(), frame_relative_level(), gdbpy_convert_exception(), gdbpy_is_string(), gdb::ref_ptr< T, Policy >::get(), get_addr_from_python(), get_frame_arch(), get_py_iter_from_func(), get_user_print_options(), ui_out::is_mi_like_p(), frame_info::level, lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_PRINT_NAME, PRINT_ARGS, print_args(), PRINT_FRAME_INFO, print_frame_info(), PRINT_LEVEL, PRINT_LOCALS, py_mi_print_variables(), py_print_args(), py_print_locals(), PyObject_CallMethod, PyObject_HasAttrString, python_string_to_host_string(), RETURN_MASK_ERROR, ui_out::spaces(), ui_out::text(), TRY, ui_left, and ui_out::wrap_hint().

Referenced by gdbpy_apply_frame_filter().

## ◆ py_print_locals()

static enum ext_lang_bt_status py_print_locals | ( | PyObject * | filter,
|  | struct ui_out * | out,
|  | enum ext_lang_frame_args | args_type,
|  | int | indent,
|  | struct frame_info * | frame
| ) |  |
| static

Definition at line 837 of file py-framefilter.c.

References enumerate_locals(), EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, gdb::ref_ptr< T, Policy >::get(), and get_py_iter_from_func().

Referenced by py_print_frame().

## ◆ py_print_single_arg()

static enum ext_lang_bt_status py_print_single_arg | ( | struct ui_out * | out,
|  | const char * | sym_name,
|  | struct frame_arg * | fa,
|  | struct value * | fv,
|  | const struct value_print_options * | opts,
|  | enum ext_lang_frame_args | args_type,
|  | int | print_args_field,
|  | const struct language_defn * | language
| ) |  |
| static

Definition at line 345 of file py-framefilter.c.

References _, annotate_arg_begin(), annotate_arg_name_end(), annotate_arg_value(), CATCH, gdb::optional< T >::emplace(), END_CATCH, frame_arg::entry_kind, frame_arg::error, EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, ui_out::field_fmt(), ui_out::field_int(), ui_out::field_stream(), ui_out::field_string(), fprintf_symbol_filtered(), gdb_assert, gdbpy_convert_exception(), ui_out::is_mi_like_p(), language_def(), MI_PRINT_SIMPLE_VALUES, NO_VALUES, print_entry_values_compact, print_entry_values_only, ui_file::puts(), py_print_type(), py_print_value(), RETURN_MASK_ERROR, frame_arg::sym, SYMBOL_LANGUAGE, SYMBOL_PRINT_NAME, ui_out::text(), TRY, frame_arg::val, and value_type().

Referenced by enumerate_args().

## ◆ py_print_type()

static enum ext_lang_bt_status py_print_type | ( | struct ui_out * | out,
|  | struct value * | val
| ) |  |
| static

Definition at line 207 of file py-framefilter.c.

References CATCH, check_typedef(), END_CATCH, EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, ui_out::field_stream(), gdbpy_convert_exception(), RETURN_MASK_ALL, TRY, type_print(), and value_type().

Referenced by enumerate_locals(), and py_print_single_arg().

## ◆ py_print_value()

static enum ext_lang_bt_status py_print_value | ( | struct ui_out * | out,
|  | struct value * | val,
|  | const struct value_print_options * | opts,
|  | int | indent,
|  | enum ext_lang_frame_args | args_type,
|  | const struct language_defn * | language
| ) |  |
| static

Definition at line 238 of file py-framefilter.c.

References CATCH, check_typedef(), common_val_print(), END_CATCH, EXT_LANG_BT_ERROR, EXT_LANG_BT_OK, ui_out::field_stream(), gdbpy_convert_exception(), MI_PRINT_ALL_VALUES, MI_PRINT_SIMPLE_VALUES, NO_VALUES, RETURN_MASK_ALL, TRY, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and value_type().

Referenced by enumerate_locals(), and py_print_single_arg().