static PyObject * infpy_threads (PyObject *self, PyObject *args) { int i; struct threadlist_entry *entry; inferior_object *inf_obj = (inferior_object *) self; PyObject *tuple; volatile struct gdb_exception except; INFPY_REQUIRE_VALID (inf_obj); TRY_CATCH (except, RETURN_MASK_ALL) update_thread_list (); GDB_PY_HANDLE_EXCEPTION (except); tuple = PyTuple_New (inf_obj->nthreads); if (!tuple) return NULL; for (i = 0, entry = inf_obj->threads; i < inf_obj->nthreads; i++, entry = entry->next) { Py_INCREF (entry->thread_obj); PyTuple_SET_ITEM (tuple, i, (PyObject *) entry->thread_obj); } return tuple; }
static PyObject * infpy_get_pid (PyObject *self, void *closure) { inferior_object *inf = (inferior_object *) self; INFPY_REQUIRE_VALID (inf); return PyLong_FromLong (inf->inferior->pid); }
static PyObject * infpy_get_was_attached (PyObject *self, void *closure) { inferior_object *inf = (inferior_object *) self; INFPY_REQUIRE_VALID (inf); if (inf->inferior->attach_flag) Py_RETURN_TRUE; Py_RETURN_FALSE; }
static PyObject * infpy_threads (PyObject *self, PyObject *args) { int i; struct threadlist_entry *entry; inferior_object *inf_obj = (inferior_object *) self; PyObject *tuple; INFPY_REQUIRE_VALID (inf_obj); TRY { update_thread_list (); } CATCH (except, RETURN_MASK_ALL) { GDB_PY_HANDLE_EXCEPTION (except); }
static PyObject * infpy_threads (PyObject *self, PyObject *args) { int i; struct threadlist_entry *entry; inferior_object *inf_obj = (inferior_object *) self; PyObject *tuple; INFPY_REQUIRE_VALID (inf_obj); tuple = PyTuple_New (inf_obj->nthreads); if (!tuple) return NULL; for (i = 0, entry = inf_obj->threads; i < inf_obj->nthreads; i++, entry = entry->next) { Py_INCREF (entry->thread_obj); PyTuple_SET_ITEM (tuple, i, (PyObject *) entry->thread_obj); } return tuple; }