31 PyVarObject_HEAD_INIT (NULL, 0)
37 PyVarObject_HEAD_INIT (NULL, 0)
43 PyVarObject_HEAD_INIT (NULL, 0)
49 PyVarObject_HEAD_INIT (NULL, 0)
80 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
96 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
109 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
122 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
135 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
148 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
161 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
174 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
206 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
219 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
232 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
245 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
258 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
271 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
303 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
316 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
329 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
342 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
355 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
368 return PyErr_Format (PyExc_NotImplementedError, _(
"Not implemented."));
402 if (Py_TYPE (self) != Py_TYPE (other))
404 Py_INCREF (Py_NotImplemented);
405 return Py_NotImplemented;
430 Py_INCREF (Py_NotImplemented);
431 return Py_NotImplemented;
437recpy_gap_new (
int reason_code,
const char *reason_string, Py_ssize_t number)
486 "goto (instruction|function_call) -> None.\n\
487Rewind to given location."},
494 {
"method",
recpy_method, NULL,
"Current recording method.", NULL },
495 {
"format",
recpy_format, NULL,
"Current recording format.", NULL },
499 "List of instructions in current recording.", NULL },
501 "List of function calls in current recording.", NULL },
503 "First instruction in current recording.", NULL },
505 "One past the last instruction in current recording. This is typically \
506the current instruction and is used for e.g. record.goto (record.end).", NULL },
514 {
"sal",
recpy_insn_sal, NULL,
"associated symbol and line", NULL},
520 executed speculatively", NULL},
531this function segment", NULL},
532 {
"up",
recpy_func_up, NULL,
"caller or returned-to function segment", NULL},
533 {
"prev",
recpy_func_prev, NULL,
"previous segment of this function", NULL},
534 {
"next",
recpy_func_next, NULL,
"next segment of this function", NULL},
600 const char *method = NULL;
601 const char *format = NULL;
604 if (!PyArg_ParseTuple (args,
"|ss", &method, &format))
612 catch (
const gdb_exception &except)
646 catch (
const gdb_exception &except)
struct thread_info * inferior_thread(void)
PyTypeObject * py_insn_get_insn_type()
PyObject * recpy_bt_func_prev(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_format(PyObject *self, void *closure)
PyObject * recpy_bt_insn_pc(PyObject *self, void *closure)
PyObject * recpy_bt_func_symbol(PyObject *self, void *closure)
PyObject * recpy_bt_begin(PyObject *self, void *closure)
PyObject * recpy_bt_insn_sal(PyObject *self, void *closure)
PyObject * recpy_bt_goto(PyObject *self, PyObject *args)
PyObject * recpy_bt_end(PyObject *self, void *closure)
PyObject * recpy_bt_method(PyObject *self, void *closure)
PyObject * recpy_bt_func_level(PyObject *self, void *closure)
PyObject * recpy_bt_insn_decoded(PyObject *self, void *closure)
PyObject * recpy_bt_replay_position(PyObject *self, void *closure)
PyObject * recpy_bt_insn_data(PyObject *self, void *closure)
PyObject * recpy_bt_func_next(PyObject *self, void *closure)
PyObject * recpy_bt_instruction_history(PyObject *self, void *closure)
PyObject * recpy_bt_insn_is_speculative(PyObject *self, void *closure)
PyObject * recpy_bt_insn_size(PyObject *self, void *closure)
PyObject * recpy_bt_function_call_history(PyObject *self, void *closure)
PyObject * recpy_full_format(PyObject *self, void *closure)
PyObject * recpy_full_method(PyObject *self, void *closure)
static PyObject * recpy_insn_decoded(PyObject *self, void *closure)
static PyObject * recpy_insn_data(PyObject *self, void *closure)
static gdb_PyGetSetDef recpy_insn_getset[]
static PyObject * recpy_replay_position(PyObject *self, void *closure)
static PyObject * recpy_insn_size(PyObject *self, void *closure)
static PyObject * recpy_format(PyObject *self, void *closure)
PyObject * gdbpy_stop_recording(PyObject *self, PyObject *args)
PyTypeObject recpy_func_type
static PyObject * recpy_gap_reason_code(PyObject *self, void *closure)
static PyObject * recpy_func_prev(PyObject *self, void *closure)
static gdb_PyGetSetDef recpy_record_getset[]
PyObject * recpy_gap_new(int reason_code, const char *reason_string, Py_ssize_t number)
static PyTypeObject recpy_record_type
static PyObject * recpy_func_instructions(PyObject *self, void *closure)
static PyObject * recpy_insn_is_speculative(PyObject *self, void *closure)
static PyObject * recpy_gap_number(PyObject *self, void *closure)
static PyObject * recpy_gap_reason_string(PyObject *self, void *closure)
static PyObject * recpy_insn_sal(PyObject *self, void *closure)
static PyObject * recpy_begin(PyObject *self, void *closure)
static PyObject * recpy_func_next(PyObject *self, void *closure)
static gdb_PyGetSetDef recpy_func_getset[]
PyObject * recpy_func_new(thread_info *thread, enum record_method method, Py_ssize_t number)
static PyObject * recpy_func_up(PyObject *self, void *closure)
static PyObject * recpy_end(PyObject *self, void *closure)
static PyMethodDef recpy_record_methods[]
static PyObject * recpy_goto(PyObject *self, PyObject *value)
PyObject * gdbpy_start_recording(PyObject *self, PyObject *args)
static PyObject * recpy_element_number(PyObject *self, void *closure)
PyObject * gdbpy_current_recording(PyObject *self, PyObject *args)
PyObject * recpy_insn_new(thread_info *thread, enum record_method method, Py_ssize_t number)
static PyObject * recpy_func_level(PyObject *self, void *closure)
static PyTypeObject recpy_gap_type
static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION gdbpy_initialize_record(void)
static PyObject * recpy_instruction_history(PyObject *self, void *closure)
static Py_hash_t recpy_element_hash(PyObject *self)
static PyObject * recpy_insn_pc(PyObject *self, void *closure)
static PyObject * recpy_function_call_history(PyObject *self, void *closure)
static PyObject * recpy_func_symbol(PyObject *self, void *closure)
static PyObject * recpy_element_richcompare(PyObject *self, PyObject *other, int op)
PyTypeObject recpy_insn_type
static PyObject * recpy_method(PyObject *self, void *closure)
static gdb_PyGetSetDef recpy_gap_getset[]
gdbpy_ref gdb_py_object_from_longest(LONGEST l)
void gdbpy_convert_exception(const struct gdb_exception &exception)
#define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
#define GDBPY_INITIALIZE_FILE(INIT,...)
#define GDB_PY_HANDLE_EXCEPTION(Exception)
void record_stop(int from_tty)
struct target_ops * find_record_target(void)
void record_start(const char *method, const char *format, int from_tty)
PyObject_HEAD thread_info * thread
enum record_method method
PyObject_HEAD int reason_code
const char * reason_string
PyObject_HEAD thread_info * thread
enum record_method method
enum record_method target_record_method(ptid_t ptid)