43 Py_XDECREF (dis->
iter);
59 const char *
name = NULL;
66 item = PyIter_Next (t->
iter);
71 if (!PyErr_Occurred ())
78 char *name_str, *value_str;
80 PyErr_Fetch (&type, &value, &trace);
85 if (value_str == NULL)
92 self->next_raw_index++);
93 item = Py_BuildValue (
"(ss)", name_str, value_str);
110 if (!PyArg_ParseTuple (item,
"sO", &name, &py_v))
113 error (
_(
"Invalid item from the child list"));
116 vitem =
xmalloc (
sizeof *vitem);
118 if (vitem->
value == NULL)
120 vitem->
name = xstrdup (name);
122 self->next_raw_index++;
141 struct
varobj *var, PyObject *pyiter)
143 self->base.var = var;
145 self->base.next_raw_index = 0;
155 py_varobj_iter_new (struct
varobj *var, PyObject *pyiter)
160 py_varobj_iter_ctor (
self, var, pyiter);
184 if (children == NULL)
187 error (
_(
"Null value returned for children"));
192 iter = PyObject_GetIter (children);
196 error (
_(
"Could not get children iterator"));
199 py_iter = py_varobj_iter_new (var, iter);
203 return &py_iter->
base;
static const struct varobj_iter_ops py_varobj_iter_ops
struct varobj_iter * py_varobj_get_iterator(struct varobj *var, PyObject *printer)
static void CPYCHECKER_STEALS_REFERENCE_TO_ARG(3)
int gdb_python_initialized
char * xstrprintf(const char *format,...)
PyObject * gdbpy_children_cst
void gdbpy_print_stack(void)
struct value * convert_value_from_python(PyObject *obj)
PyObject * gdbpy_gdb_memory_error
struct cleanup * varobj_ensure_python_env(const struct varobj *var)
static varobj_item * py_varobj_iter_next(struct varobj_iter *self)
struct cleanup * make_cleanup_py_decref(PyObject *py)
static void py_varobj_iter_dtor(struct varobj_iter *self)
void error(const char *fmt,...)
char * gdbpy_exception_to_string(PyObject *ptype, PyObject *pvalue)
void do_cleanups(struct cleanup *old_chain)