#include "py-record-btrace.h"
#include "py-record-full.h"
#include "target.h"
+#include "gdbthread.h"
/* Python Record type. */
/* Create a new gdb.RecordInstruction object. */
PyObject *
-recpy_insn_new (ptid_t ptid, enum record_method method, Py_ssize_t number)
+recpy_insn_new (thread_info *thread, enum record_method method, Py_ssize_t number)
{
recpy_element_object * const obj = PyObject_New (recpy_element_object,
&recpy_insn_type);
if (obj == NULL)
return NULL;
- obj->ptid = ptid;
+ obj->thread = thread;
obj->method = method;
obj->number = number;
/* Create a new gdb.RecordFunctionSegment object. */
PyObject *
-recpy_func_new (ptid_t ptid, enum record_method method, Py_ssize_t number)
+recpy_func_new (thread_info *thread, enum record_method method, Py_ssize_t number)
{
recpy_element_object * const obj = PyObject_New (recpy_element_object,
&recpy_func_type);
if (obj == NULL)
return NULL;
- obj->ptid = ptid;
+ obj->thread = thread;
obj->method = method;
obj->number = number;
switch (op)
{
case Py_EQ:
- if (ptid_equal (obj1->ptid, obj2->ptid)
+ if (obj1->thread == obj2->thread
&& obj1->method == obj2->method
&& obj1->number == obj2->number)
Py_RETURN_TRUE;
Py_RETURN_FALSE;
case Py_NE:
- if (!ptid_equal (obj1->ptid, obj2->ptid)
+ if (obj1->thread != obj2->thread
|| obj1->method != obj2->method
|| obj1->number != obj2->number)
Py_RETURN_TRUE;
Py_RETURN_NONE;
ret = PyObject_New (recpy_record_object, &recpy_record_type);
- ret->ptid = inferior_ptid;
- ret->method = target_record_method (inferior_ptid);
+ ret->thread = inferior_thread ();
+ ret->method = target_record_method (ret->thread->ptid);
return (PyObject *) ret;
}