GDB (xrefs)
Classes | Macros | Functions | Variables
py-record-btrace.c File Reference
#include "defs.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "gdbthread.h"
#include "btrace.h"
#include "py-record.h"
#include "py-record-btrace.h"
#include "disasm.h"

Go to the source code of this file.

Classes

struct  btpy_list_object
 

Macros

#define BTPY_PYSLICE(x)   ((PySliceObject *) x)
 

Functions

static const btrace_insnbtrace_insn_from_recpy_insn (const PyObject *const pyobject)
 
static const btrace_functionbtrace_func_from_recpy_func (const PyObject *const pyobject)
 
static PyObject * btpy_insn_or_gap_new (const thread_info *tinfo, Py_ssize_t number)
 
static PyObject * btpy_list_new (ptid_t ptid, Py_ssize_t first, Py_ssize_t last, Py_ssize_t step, PyTypeObject *element_type)
 
PyObject * recpy_bt_insn_sal (PyObject *self, void *closure)
 
PyObject * recpy_bt_insn_pc (PyObject *self, void *closure)
 
PyObject * recpy_bt_insn_size (PyObject *self, void *closure)
 
PyObject * recpy_bt_insn_is_speculative (PyObject *self, void *closure)
 
PyObject * recpy_bt_insn_data (PyObject *self, void *closure)
 
PyObject * recpy_bt_insn_decoded (PyObject *self, void *closure)
 
PyObject * recpy_bt_func_level (PyObject *self, void *closure)
 
PyObject * recpy_bt_func_symbol (PyObject *self, void *closure)
 
PyObject * recpy_bt_func_instructions (PyObject *self, void *closure)
 
PyObject * recpy_bt_func_up (PyObject *self, void *closure)
 
PyObject * recpy_bt_func_prev (PyObject *self, void *closure)
 
PyObject * recpy_bt_func_next (PyObject *self, void *closure)
 
static Py_ssize_t btpy_list_length (PyObject *self)
 
static PyObject * btpy_list_item (PyObject *self, Py_ssize_t index)
 
static PyObject * btpy_list_slice (PyObject *self, PyObject *value)
 
static LONGEST btpy_list_position (PyObject *self, PyObject *value)
 
static int btpy_list_contains (PyObject *self, PyObject *value)
 
static PyObject * btpy_list_index (PyObject *self, PyObject *value)
 
static PyObject * btpy_list_count (PyObject *self, PyObject *value)
 
static PyObject * btpy_list_richcompare (PyObject *self, PyObject *other, int op)
 
PyObject * recpy_bt_method (PyObject *self, void *closure)
 
PyObject * recpy_bt_format (PyObject *self, void *closure)
 
PyObject * recpy_bt_replay_position (PyObject *self, void *closure)
 
PyObject * recpy_bt_begin (PyObject *self, void *closure)
 
PyObject * recpy_bt_end (PyObject *self, void *closure)
 
PyObject * recpy_bt_instruction_history (PyObject *self, void *closure)
 
PyObject * recpy_bt_function_call_history (PyObject *self, void *closure)
 
PyObject * recpy_bt_goto (PyObject *self, PyObject *args)
 
int gdbpy_initialize_btrace (void)
 

Variables

static PyTypeObject btpy_list_type
 
struct PyMethodDef btpy_list_methods []
 
static PySequenceMethods btpy_list_sequence_methods
 
static PyMappingMethods btpy_list_mapping_methods
 

Macro Definition Documentation

◆ BTPY_PYSLICE

#define BTPY_PYSLICE (   x)    ((PySliceObject *) x)

Definition at line 35 of file py-record-btrace.c.

Referenced by btpy_list_slice().

Function Documentation

◆ btpy_insn_or_gap_new()

static PyObject* btpy_insn_or_gap_new ( const thread_info tinfo,
Py_ssize_t  number 
)
static

◆ btpy_list_contains()

static int btpy_list_contains ( PyObject *  self,
PyObject *  value 
)
static

Definition at line 543 of file py-record-btrace.c.

References btpy_list_position().

Referenced by btpy_list_count(), and gdbpy_initialize_btrace().

◆ btpy_list_count()

static PyObject* btpy_list_count ( PyObject *  self,
PyObject *  value 
)
static

Definition at line 567 of file py-record-btrace.c.

References btpy_list_contains().

◆ btpy_list_index()

static PyObject* btpy_list_index ( PyObject *  self,
PyObject *  value 
)
static

Definition at line 554 of file py-record-btrace.c.

References _, btpy_list_position(), and gdb_py_long_from_longest.

◆ btpy_list_item()

static PyObject* btpy_list_item ( PyObject *  self,
Py_ssize_t  index 
)
static

◆ btpy_list_length()

static Py_ssize_t btpy_list_length ( PyObject *  self)
static

◆ btpy_list_new()

static PyObject* btpy_list_new ( ptid_t  ptid,
Py_ssize_t  first,
Py_ssize_t  last,
Py_ssize_t  step,
PyTypeObject *  element_type 
)
static

◆ btpy_list_position()

static LONGEST btpy_list_position ( PyObject *  self,
PyObject *  value 
)
static

◆ btpy_list_richcompare()

static PyObject* btpy_list_richcompare ( PyObject *  self,
PyObject *  other,
int  op 
)
static

◆ btpy_list_slice()

static PyObject* btpy_list_slice ( PyObject *  self,
PyObject *  value 
)
static

◆ btrace_func_from_recpy_func()

static const btrace_function* btrace_func_from_recpy_func ( const PyObject *const  pyobject)
static

◆ btrace_insn_from_recpy_insn()

static const btrace_insn* btrace_insn_from_recpy_insn ( const PyObject *const  pyobject)
static

◆ gdbpy_initialize_btrace()

int gdbpy_initialize_btrace ( void  )

◆ recpy_bt_begin()

PyObject* recpy_bt_begin ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_end()

PyObject* recpy_bt_end ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_format()

PyObject* recpy_bt_format ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_func_instructions()

PyObject* recpy_bt_func_instructions ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_func_level()

PyObject* recpy_bt_func_level ( PyObject *  self,
void *  closure 
)

Definition at line 338 of file py-record-btrace.c.

References btrace_func_from_recpy_func(), find_thread_ptid(), and func.

Referenced by recpy_func_level().

◆ recpy_bt_func_next()

PyObject* recpy_bt_func_next ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_func_prev()

PyObject* recpy_bt_func_prev ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_func_symbol()

PyObject* recpy_bt_func_symbol ( PyObject *  self,
void *  closure 
)

Definition at line 354 of file py-record-btrace.c.

References btrace_func_from_recpy_func(), func, and symbol_to_symbol_object().

Referenced by recpy_func_symbol().

◆ recpy_bt_func_up()

PyObject* recpy_bt_func_up ( PyObject *  self,
void *  closure 
)

Definition at line 394 of file py-record-btrace.c.

References btrace_func_from_recpy_func(), func, RECORD_METHOD_BTRACE, and recpy_func_new().

Referenced by recpy_func_up().

◆ recpy_bt_function_call_history()

PyObject* recpy_bt_function_call_history ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_goto()

PyObject* recpy_bt_goto ( PyObject *  self,
PyObject *  args 
)

◆ recpy_bt_insn_data()

PyObject* recpy_bt_insn_data ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_insn_decoded()

PyObject* recpy_bt_insn_decoded ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_insn_is_speculative()

PyObject* recpy_bt_insn_is_speculative ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_insn_pc()

PyObject* recpy_bt_insn_pc ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_insn_sal()

PyObject* recpy_bt_insn_sal ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_insn_size()

PyObject* recpy_bt_insn_size ( PyObject *  self,
void *  closure 
)

Definition at line 241 of file py-record-btrace.c.

References btrace_insn_from_recpy_insn(), and btrace_insn::size.

Referenced by recpy_insn_size().

◆ recpy_bt_instruction_history()

PyObject* recpy_bt_instruction_history ( PyObject *  self,
void *  closure 
)

◆ recpy_bt_method()

PyObject* recpy_bt_method ( PyObject *  self,
void *  closure 
)

Definition at line 623 of file py-record-btrace.c.

Referenced by recpy_method().

◆ recpy_bt_replay_position()

PyObject* recpy_bt_replay_position ( PyObject *  self,
void *  closure 
)

Variable Documentation

◆ btpy_list_mapping_methods

PyMappingMethods btpy_list_mapping_methods
static
Initial value:
=
{
NULL
}

Definition at line 826 of file py-record-btrace.c.

Referenced by gdbpy_initialize_btrace().

◆ btpy_list_methods

struct PyMethodDef btpy_list_methods[]
Initial value:
=
{
{ "count", btpy_list_count, METH_O, "count number of occurences"},
{ "index", btpy_list_index, METH_O, "index of entry"},
{NULL}
}
static PyObject * btpy_list_index(PyObject *self, PyObject *value)
static PyObject * btpy_list_count(PyObject *self, PyObject *value)

Definition at line 810 of file py-record-btrace.c.

Referenced by gdbpy_initialize_btrace().

◆ btpy_list_sequence_methods

PySequenceMethods btpy_list_sequence_methods
static
Initial value:
=
{
NULL
}

Definition at line 819 of file py-record-btrace.c.

Referenced by gdbpy_initialize_btrace().

◆ btpy_list_type

PyTypeObject btpy_list_type
static
Initial value:
= {
}
#define PyVarObject_HEAD_INIT(type, size)

Definition at line 62 of file py-record-btrace.c.

Referenced by btpy_list_new(), and gdbpy_initialize_btrace().