aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-exitedevent.c4
-rw-r--r--gdb/python/py-finishbreakpoint.c5
-rw-r--r--gdb/python/py-inferior.c49
-rw-r--r--gdb/python/py-infthread.c24
-rw-r--r--gdb/python/py-record-btrace.c54
-rw-r--r--gdb/python/py-record.c17
-rw-r--r--gdb/python/py-record.h12
-rw-r--r--gdb/python/py-threadevent.c5
-rw-r--r--gdb/python/python-internal.h9
9 files changed, 91 insertions, 88 deletions
diff --git a/gdb/python/py-exitedevent.c b/gdb/python/py-exitedevent.c
index 4f861e3..6a7c9f5 100644
--- a/gdb/python/py-exitedevent.c
+++ b/gdb/python/py-exitedevent.c
@@ -39,10 +39,10 @@ create_exited_event_object (const LONGEST *exit_code, struct inferior *inf)
return NULL;
}
- gdbpy_ref<> inf_obj (inferior_to_inferior_object (inf));
+ gdbpy_ref<inferior_object> inf_obj (inferior_to_inferior_object (inf));
if (inf_obj == NULL || evpy_add_attribute (exited_event.get (),
"inferior",
- inf_obj.get ()) < 0)
+ (PyObject *) inf_obj.get ()) < 0)
return NULL;
return exited_event.release ();
diff --git a/gdb/python/py-finishbreakpoint.c b/gdb/python/py-finishbreakpoint.c
index b3978f7..c33b7dd 100644
--- a/gdb/python/py-finishbreakpoint.c
+++ b/gdb/python/py-finishbreakpoint.c
@@ -221,14 +221,15 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs)
if (PyErr_Occurred ())
return -1;
- thread = ptid_to_global_thread_id (inferior_ptid);
- if (thread == 0)
+ if (inferior_ptid == null_ptid)
{
PyErr_SetString (PyExc_ValueError,
_("No thread currently selected."));
return -1;
}
+ thread = inferior_thread ()->global_num;
+
if (internal)
{
internal_bp = PyObject_IsTrue (internal);
diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
index d199aaa..9f09ae9 100644
--- a/gdb/python/py-inferior.c
+++ b/gdb/python/py-inferior.c
@@ -35,7 +35,7 @@ struct threadlist_entry {
struct threadlist_entry *next;
};
-typedef struct
+struct inferior_object
{
PyObject_HEAD
@@ -48,7 +48,7 @@ typedef struct
/* Number of threads in the list. */
int nthreads;
-} inferior_object;
+};
extern PyTypeObject inferior_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("inferior_object");
@@ -207,7 +207,8 @@ python_new_objfile (struct objfile *objfile)
representing INFERIOR. If the object has already been created,
return it and increment the reference count, otherwise, create it.
Return NULL on failure. */
-PyObject *
+
+inferior_object *
inferior_to_inferior_object (struct inferior *inferior)
{
inferior_object *inf_obj;
@@ -232,7 +233,7 @@ inferior_to_inferior_object (struct inferior *inferior)
/* We are returning a new reference. */
Py_INCREF ((PyObject *)inf_obj);
- return (PyObject *) inf_obj;
+ return inf_obj;
}
/* Called when a new inferior is created. Notifies any Python event
@@ -248,7 +249,7 @@ python_new_inferior (struct inferior *inf)
if (evregpy_no_listeners_p (gdb_py_events.new_inferior))
return;
- gdbpy_ref<> inf_obj (inferior_to_inferior_object (inf));
+ gdbpy_ref<inferior_object> inf_obj (inferior_to_inferior_object (inf));
if (inf_obj == NULL)
{
gdbpy_print_stack ();
@@ -257,7 +258,8 @@ python_new_inferior (struct inferior *inf)
gdbpy_ref<> event (create_event_object (&new_inferior_event_object_type));
if (event == NULL
- || evpy_add_attribute (event.get (), "inferior", inf_obj.get ()) < 0
+ || evpy_add_attribute (event.get (), "inferior",
+ (PyObject *) inf_obj.get ()) < 0
|| evpy_emit_event (event.get (), gdb_py_events.new_inferior) < 0)
gdbpy_print_stack ();
}
@@ -275,7 +277,7 @@ python_inferior_deleted (struct inferior *inf)
if (evregpy_no_listeners_p (gdb_py_events.inferior_deleted))
return;
- gdbpy_ref<> inf_obj (inferior_to_inferior_object (inf));
+ gdbpy_ref<inferior_object> inf_obj (inferior_to_inferior_object (inf));
if (inf_obj == NULL)
{
gdbpy_print_stack ();
@@ -284,7 +286,8 @@ python_inferior_deleted (struct inferior *inf)
gdbpy_ref<> event (create_event_object (&inferior_deleted_event_object_type));
if (event == NULL
- || evpy_add_attribute (event.get (), "inferior", inf_obj.get ()) < 0
+ || evpy_add_attribute (event.get (), "inferior",
+ (PyObject *) inf_obj.get ()) < 0
|| evpy_emit_event (event.get (), gdb_py_events.inferior_deleted) < 0)
gdbpy_print_stack ();
}
@@ -298,28 +301,22 @@ find_inferior_object (int pid)
struct inferior *inf = find_inferior_pid (pid);
if (inf)
- return inferior_to_inferior_object (inf);
+ return (PyObject *) inferior_to_inferior_object (inf);
return NULL;
}
thread_object *
-find_thread_object (ptid_t ptid)
+thread_to_thread_object (thread_info *thr)
{
- int pid;
- struct threadlist_entry *thread;
-
- pid = ptid_get_pid (ptid);
- if (pid == 0)
- return NULL;
-
- gdbpy_ref<> inf_obj (find_inferior_object (pid));
+ gdbpy_ref<inferior_object> inf_obj (inferior_to_inferior_object (thr->inf));
if (inf_obj == NULL)
return NULL;
- for (thread = ((inferior_object *)(inf_obj.get ()))->threads; thread;
+ for (threadlist_entry *thread = inf_obj->threads;
+ thread != NULL;
thread = thread->next)
- if (ptid_equal (thread->thread_obj->thread->ptid, ptid))
+ if (thread->thread_obj->thread == thr)
return thread->thread_obj;
return NULL;
@@ -374,7 +371,7 @@ delete_thread_object (struct thread_info *tp, int ignore)
gdbpy_enter enter_py (python_gdbarch, python_language);
gdbpy_ref<inferior_object> inf_obj
- ((inferior_object *) find_inferior_object (ptid_get_pid (tp->ptid)));
+ ((inferior_object *) inferior_to_inferior_object (tp->inf));
if (inf_obj == NULL)
return;
@@ -466,12 +463,12 @@ static int
build_inferior_list (struct inferior *inf, void *arg)
{
PyObject *list = (PyObject *) arg;
- gdbpy_ref<> inferior (inferior_to_inferior_object (inf));
+ gdbpy_ref<inferior_object> inferior (inferior_to_inferior_object (inf));
- if (inferior == NULL)
+ if (inferior == NULL)
return 0;
- return PyList_Append (list, inferior.get ()) ? 1 : 0;
+ return PyList_Append (list, (PyObject *) inferior.get ()) ? 1 : 0;
}
/* Implementation of gdb.inferiors () -> (gdb.Inferior, ...).
@@ -848,7 +845,7 @@ infpy_thread_from_thread_handle (PyObject *self, PyObject *args, PyObject *kw)
thread_info = find_thread_by_handle (val, inf_obj->inferior);
if (thread_info != NULL)
{
- result = (PyObject *) find_thread_object (thread_info->ptid);
+ result = (PyObject *) thread_to_thread_object (thread_info);
if (result != NULL)
Py_INCREF (result);
}
@@ -910,7 +907,7 @@ py_free_inferior (struct inferior *inf, void *datum)
PyObject *
gdbpy_selected_inferior (PyObject *self, PyObject *args)
{
- return inferior_to_inferior_object (current_inferior ());
+ return (PyObject *) inferior_to_inferior_object (current_inferior ());
}
int
diff --git a/gdb/python/py-infthread.c b/gdb/python/py-infthread.c
index 9ed18a3..9b90ad5 100644
--- a/gdb/python/py-infthread.c
+++ b/gdb/python/py-infthread.c
@@ -46,7 +46,7 @@ create_thread_object (struct thread_info *tp)
return NULL;
thread_obj->thread = tp;
- thread_obj->inf_obj = find_inferior_object (ptid_get_pid (tp->ptid));
+ thread_obj->inf_obj = (PyObject *) inferior_to_inferior_object (tp->inf);
return thread_obj;
}
@@ -179,7 +179,7 @@ thpy_switch (PyObject *self, PyObject *args)
TRY
{
- switch_to_thread (thread_obj->thread->ptid);
+ switch_to_thread (thread_obj->thread);
}
CATCH (except, RETURN_MASK_ALL)
{
@@ -200,7 +200,7 @@ thpy_is_stopped (PyObject *self, PyObject *args)
THPY_REQUIRE_VALID (thread_obj);
- if (is_stopped (thread_obj->thread->ptid))
+ if (thread_obj->thread->state == THREAD_STOPPED)
Py_RETURN_TRUE;
Py_RETURN_FALSE;
@@ -216,7 +216,7 @@ thpy_is_running (PyObject *self, PyObject *args)
THPY_REQUIRE_VALID (thread_obj);
- if (is_running (thread_obj->thread->ptid))
+ if (thread_obj->thread->state == THREAD_RUNNING)
Py_RETURN_TRUE;
Py_RETURN_FALSE;
@@ -232,7 +232,7 @@ thpy_is_exited (PyObject *self, PyObject *args)
THPY_REQUIRE_VALID (thread_obj);
- if (is_exited (thread_obj->thread->ptid))
+ if (thread_obj->thread->state == THREAD_EXITED)
Py_RETURN_TRUE;
Py_RETURN_FALSE;
@@ -283,13 +283,15 @@ gdbpy_create_ptid_object (ptid_t ptid)
PyObject *
gdbpy_selected_thread (PyObject *self, PyObject *args)
{
- PyObject *thread_obj;
-
- thread_obj = (PyObject *) find_thread_object (inferior_ptid);
- if (thread_obj)
+ if (inferior_ptid != null_ptid)
{
- Py_INCREF (thread_obj);
- return thread_obj;
+ PyObject *thread_obj
+ = (PyObject *) thread_to_thread_object (inferior_thread ());
+ if (thread_obj != NULL)
+ {
+ Py_INCREF (thread_obj);
+ return thread_obj;
+ }
}
Py_RETURN_NONE;
diff --git a/gdb/python/py-record-btrace.c b/gdb/python/py-record-btrace.c
index d78df7f..057475e 100644
--- a/gdb/python/py-record-btrace.c
+++ b/gdb/python/py-record-btrace.c
@@ -43,7 +43,7 @@ typedef struct {
PyObject_HEAD
/* The thread this list belongs to. */
- ptid_t ptid;
+ thread_info *thread;
/* The first index being part of this list. */
Py_ssize_t first;
@@ -82,7 +82,7 @@ btrace_insn_from_recpy_insn (const PyObject * const pyobject)
}
obj = (const recpy_element_object *) pyobject;
- tinfo = find_thread_ptid (obj->ptid);
+ tinfo = obj->thread;
if (tinfo == NULL || btrace_is_empty (tinfo))
{
@@ -125,7 +125,7 @@ btrace_func_from_recpy_func (const PyObject * const pyobject)
}
obj = (const recpy_element_object *) pyobject;
- tinfo = find_thread_ptid (obj->ptid);
+ tinfo = obj->thread;
if (tinfo == NULL || btrace_is_empty (tinfo))
{
@@ -153,7 +153,7 @@ btrace_func_from_recpy_func (const PyObject * const pyobject)
gdb.RecordInstruction or gdb.RecordGap object for it accordingly. */
static PyObject *
-btpy_insn_or_gap_new (const thread_info *tinfo, Py_ssize_t number)
+btpy_insn_or_gap_new (thread_info *tinfo, Py_ssize_t number)
{
btrace_insn_iterator iter;
int err_code;
@@ -172,13 +172,13 @@ btpy_insn_or_gap_new (const thread_info *tinfo, Py_ssize_t number)
return recpy_gap_new (err_code, err_string, number);
}
- return recpy_insn_new (tinfo->ptid, RECORD_METHOD_BTRACE, number);
+ return recpy_insn_new (tinfo, RECORD_METHOD_BTRACE, number);
}
/* Create a new gdb.BtraceList object. */
static PyObject *
-btpy_list_new (ptid_t ptid, Py_ssize_t first, Py_ssize_t last, Py_ssize_t step,
+btpy_list_new (thread_info *thread, Py_ssize_t first, Py_ssize_t last, Py_ssize_t step,
PyTypeObject *element_type)
{
btpy_list_object * const obj = PyObject_New (btpy_list_object,
@@ -187,7 +187,7 @@ btpy_list_new (ptid_t ptid, Py_ssize_t first, Py_ssize_t last, Py_ssize_t step,
if (obj == NULL)
return NULL;
- obj->ptid = ptid;
+ obj->thread = thread;
obj->first = first;
obj->last = last;
obj->step = step;
@@ -344,7 +344,7 @@ recpy_bt_func_level (PyObject *self, void *closure)
if (func == NULL)
return NULL;
- tinfo = find_thread_ptid (((recpy_element_object *) self)->ptid);
+ tinfo = ((recpy_element_object *) self)->thread;
return PyInt_FromLong (tinfo->btrace.level + func->level);
}
@@ -383,7 +383,7 @@ recpy_bt_func_instructions (PyObject *self, void *closure)
if (len == 0)
len = 1;
- return btpy_list_new (((recpy_element_object *) self)->ptid,
+ return btpy_list_new (((recpy_element_object *) self)->thread,
func->insn_offset, func->insn_offset + len, 1,
&recpy_insn_type);
}
@@ -402,7 +402,7 @@ recpy_bt_func_up (PyObject *self, void *closure)
if (func->up == 0)
Py_RETURN_NONE;
- return recpy_func_new (((recpy_element_object *) self)->ptid,
+ return recpy_func_new (((recpy_element_object *) self)->thread,
RECORD_METHOD_BTRACE, func->up);
}
@@ -420,7 +420,7 @@ recpy_bt_func_prev (PyObject *self, void *closure)
if (func->prev == 0)
Py_RETURN_NONE;
- return recpy_func_new (((recpy_element_object *) self)->ptid,
+ return recpy_func_new (((recpy_element_object *) self)->thread,
RECORD_METHOD_BTRACE, func->prev);
}
@@ -438,7 +438,7 @@ recpy_bt_func_next (PyObject *self, void *closure)
if (func->next == 0)
Py_RETURN_NONE;
- return recpy_func_new (((recpy_element_object *) self)->ptid,
+ return recpy_func_new (((recpy_element_object *) self)->thread,
RECORD_METHOD_BTRACE, func->next);
}
@@ -474,9 +474,9 @@ btpy_list_item (PyObject *self, Py_ssize_t index)
number = obj->first + (obj->step * index);
if (obj->element_type == &recpy_insn_type)
- return recpy_insn_new (obj->ptid, RECORD_METHOD_BTRACE, number);
+ return recpy_insn_new (obj->thread, RECORD_METHOD_BTRACE, number);
else
- return recpy_func_new (obj->ptid, RECORD_METHOD_BTRACE, number);
+ return recpy_func_new (obj->thread, RECORD_METHOD_BTRACE, number);
}
/* Implementation of BtraceList.__getitem__ (self, slice) -> BtraceList. */
@@ -506,7 +506,7 @@ btpy_list_slice (PyObject *self, PyObject *value)
&step, &slicelength))
return NULL;
- return btpy_list_new (obj->ptid, obj->first + obj->step * start,
+ return btpy_list_new (obj->thread, obj->first + obj->step * start,
obj->first + obj->step * stop, obj->step * step,
obj->element_type);
}
@@ -524,7 +524,7 @@ btpy_list_position (PyObject *self, PyObject *value)
if (list_obj->element_type != Py_TYPE (value))
return -1;
- if (!ptid_equal (list_obj->ptid, obj->ptid))
+ if (list_obj->thread != obj->thread)
return -1;
if (index < list_obj->first || index > list_obj->last)
@@ -590,7 +590,7 @@ btpy_list_richcompare (PyObject *self, PyObject *other, int op)
switch (op)
{
case Py_EQ:
- if (ptid_equal (obj1->ptid, obj2->ptid)
+ if (obj1->thread == obj2->thread
&& obj1->element_type == obj2->element_type
&& obj1->first == obj2->first
&& obj1->last == obj2->last
@@ -600,7 +600,7 @@ btpy_list_richcompare (PyObject *self, PyObject *other, int op)
Py_RETURN_FALSE;
case Py_NE:
- if (!ptid_equal (obj1->ptid, obj2->ptid)
+ if (obj1->thread != obj2->thread
|| obj1->element_type != obj2->element_type
|| obj1->first != obj2->first
|| obj1->last != obj2->last
@@ -633,7 +633,7 @@ PyObject *
recpy_bt_format (PyObject *self, void *closure)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- const struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ const struct thread_info * const tinfo = record->thread;
const struct btrace_config * config;
if (tinfo == NULL)
@@ -654,7 +654,7 @@ PyObject *
recpy_bt_replay_position (PyObject *self, void *closure)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- const struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ thread_info * tinfo = record->thread;
if (tinfo == NULL)
Py_RETURN_NONE;
@@ -673,7 +673,7 @@ PyObject *
recpy_bt_begin (PyObject *self, void *closure)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ thread_info *const tinfo = record->thread;
struct btrace_insn_iterator iterator;
if (tinfo == NULL)
@@ -695,7 +695,7 @@ PyObject *
recpy_bt_end (PyObject *self, void *closure)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ thread_info *const tinfo = record->thread;
struct btrace_insn_iterator iterator;
if (tinfo == NULL)
@@ -717,7 +717,7 @@ PyObject *
recpy_bt_instruction_history (PyObject *self, void *closure)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ thread_info *const tinfo = record->thread;
struct btrace_insn_iterator iterator;
unsigned long first = 0;
unsigned long last = 0;
@@ -736,7 +736,7 @@ recpy_bt_instruction_history (PyObject *self, void *closure)
btrace_insn_end (&iterator, &tinfo->btrace);
last = btrace_insn_number (&iterator);
- return btpy_list_new (record->ptid, first, last, 1, &recpy_insn_type);
+ return btpy_list_new (tinfo, first, last, 1, &recpy_insn_type);
}
/* Implementation of
@@ -746,7 +746,7 @@ PyObject *
recpy_bt_function_call_history (PyObject *self, void *closure)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ thread_info *const tinfo = record->thread;
struct btrace_call_iterator iterator;
unsigned long first = 0;
unsigned long last = 0;
@@ -765,7 +765,7 @@ recpy_bt_function_call_history (PyObject *self, void *closure)
btrace_call_end (&iterator, &tinfo->btrace);
last = btrace_call_number (&iterator);
- return btpy_list_new (record->ptid, first, last, 1, &recpy_func_type);
+ return btpy_list_new (tinfo, first, last, 1, &recpy_func_type);
}
/* Implementation of BtraceRecord.goto (self, BtraceInstruction) -> None. */
@@ -774,7 +774,7 @@ PyObject *
recpy_bt_goto (PyObject *self, PyObject *args)
{
const recpy_record_object * const record = (recpy_record_object *) self;
- struct thread_info * const tinfo = find_thread_ptid (record->ptid);
+ thread_info *const tinfo = record->thread;
const recpy_element_object *obj;
if (tinfo == NULL || btrace_is_empty (tinfo))
diff --git a/gdb/python/py-record.c b/gdb/python/py-record.c
index 9437cfb..b203786 100644
--- a/gdb/python/py-record.c
+++ b/gdb/python/py-record.c
@@ -23,6 +23,7 @@
#include "py-record-btrace.h"
#include "py-record-full.h"
#include "target.h"
+#include "gdbthread.h"
/* Python Record type. */
@@ -176,7 +177,7 @@ recpy_end (PyObject *self, void* closure)
/* 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);
@@ -184,7 +185,7 @@ recpy_insn_new (ptid_t ptid, enum record_method method, Py_ssize_t number)
if (obj == NULL)
return NULL;
- obj->ptid = ptid;
+ obj->thread = thread;
obj->method = method;
obj->number = number;
@@ -272,7 +273,7 @@ recpy_insn_is_speculative (PyObject *self, void *closure)
/* 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);
@@ -280,7 +281,7 @@ recpy_func_new (ptid_t ptid, enum record_method method, Py_ssize_t number)
if (obj == NULL)
return NULL;
- obj->ptid = ptid;
+ obj->thread = thread;
obj->method = method;
obj->number = number;
@@ -405,7 +406,7 @@ recpy_element_richcompare (PyObject *self, PyObject *other, int op)
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;
@@ -413,7 +414,7 @@ recpy_element_richcompare (PyObject *self, PyObject *other, int op)
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;
@@ -626,8 +627,8 @@ gdbpy_current_recording (PyObject *self, PyObject *args)
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;
}
diff --git a/gdb/python/py-record.h b/gdb/python/py-record.h
index 254ba9e..a24916d 100644
--- a/gdb/python/py-record.h
+++ b/gdb/python/py-record.h
@@ -29,8 +29,8 @@ typedef struct
{
PyObject_HEAD
- /* The ptid this object refers to. */
- ptid_t ptid;
+ /* The thread this object refers to. */
+ thread_info *thread;
/* The current recording method. */
enum record_method method;
@@ -43,8 +43,8 @@ typedef struct
{
PyObject_HEAD
- /* The ptid this object refers to. */
- ptid_t ptid;
+ /* The thread this object refers to. */
+ thread_info *thread;
/* The current recording method. */
enum record_method method;
@@ -60,11 +60,11 @@ extern PyTypeObject recpy_insn_type;
extern PyTypeObject recpy_func_type;
/* Create a new gdb.RecordInstruction object. */
-extern PyObject *recpy_insn_new (ptid_t ptid, enum record_method method,
+extern PyObject *recpy_insn_new (thread_info *thread, enum record_method method,
Py_ssize_t number);
/* Create a new gdb.RecordFunctionSegment object. */
-extern PyObject *recpy_func_new (ptid_t ptid, enum record_method method,
+extern PyObject *recpy_func_new (thread_info *thread, enum record_method method,
Py_ssize_t number);
/* Create a new gdb.RecordGap object. */
diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c
index 968a157..d6aa946 100644
--- a/gdb/python/py-threadevent.c
+++ b/gdb/python/py-threadevent.c
@@ -18,6 +18,7 @@
#include "defs.h"
#include "py-event.h"
#include "infrun.h"
+#include "gdbthread.h"
/* thread events can either be thread specific or process wide. If gdb is
running in non-stop mode then the event is thread specific, otherwise
@@ -31,10 +32,10 @@ static PyObject *get_event_thread (void)
static PyObject *
get_event_thread (void)
{
- PyObject *thread = NULL;
+ PyObject *thread;
if (non_stop)
- thread = (PyObject *) find_thread_object (inferior_ptid);
+ thread = (PyObject *) thread_to_thread_object (inferior_thread ());
else
thread = Py_None;
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index 495655e..c4f0e21 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -440,6 +440,8 @@ typedef struct
PyObject *inf_obj;
} thread_object;
+struct inferior_object;
+
extern struct cmd_list_element *set_python_list;
extern struct cmd_list_element *show_python_list;
@@ -532,10 +534,9 @@ PyObject *gdbpy_lookup_objfile (PyObject *self, PyObject *args, PyObject *kw);
PyObject *gdbarch_to_arch_object (struct gdbarch *gdbarch);
thread_object *create_thread_object (struct thread_info *tp);
-thread_object *find_thread_object (ptid_t ptid)
- CPYCHECKER_RETURNS_BORROWED_REF;
-PyObject *find_inferior_object (int pid);
-PyObject *inferior_to_inferior_object (struct inferior *inferior);
+thread_object *thread_to_thread_object (thread_info *thr)
+ CPYCHECKER_RETURNS_BORROWED_REF;
+inferior_object *inferior_to_inferior_object (inferior *inf);
const struct block *block_object_to_block (PyObject *obj);
struct symbol *symbol_object_to_symbol (PyObject *obj);