46 for (i = 0; i < argc; ++i)
51 PyTuple_SetItem (result.
get (), i, elt.
release ());
60 void *cookie,
int argc,
struct value **
argv)
80 error (
_(
"No method named 'invoke' in object."));
82 result.
reset (PyObject_Call (callable.
get (), args.
get (), NULL));
87 PyObject *ptype, *pvalue, *ptraceback;
89 PyErr_Fetch (&ptype, &pvalue, &ptraceback);
104 "convenience function\n" 105 "and then another occurred computing the " 106 "error message.\n"));
118 || msg == NULL || *msg ==
'\0')
120 PyErr_Restore (ptype, pvalue, ptraceback);
122 if (msg != NULL && *msg !=
'\0')
123 error (
_(
"Error occurred in Python convenience function: %s"),
126 error (
_(
"Error occurred in Python convenience function."));
132 Py_XDECREF (ptraceback);
133 error (
"%s", msg.get ());
141 error (
_(
"Error while executing Python code."));
151 fnpy_init (PyObject *
self, PyObject *args, PyObject *kwds)
156 if (! PyArg_ParseTuple (args,
"s", &
name))
168 if (docstring == NULL)
177 docstring.reset (xstrdup (
_(
"This function is not documented.")));
219 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
220 "GDB function object",
int gdb_pymodule_addobject(PyObject *module, const char *name, PyObject *object)
#define PyObject_GetAttrString(obj, attr)
static PyObject * convert_values_to_python(int argc, struct value **argv)
int gdbpy_is_string(PyObject *obj)
PyTypeObject fnpy_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF("PyObject")
#define PyVarObject_HEAD_INIT(type, size)
void printf_filtered(const char *format,...)
std::unique_ptr< T, xfree_deleter< T > > unique_xmalloc_ptr
static int fnpy_init(PyObject *self, PyObject *args, PyObject *kwds)
PyObject * value_to_value_object(struct value *val)
PyObject * gdbpy_gdberror_exc
gdb::unique_xmalloc_ptr< char > python_string_to_host_string(PyObject *obj)
static struct value * fnpy_call(struct gdbarch *gdbarch, const struct language_defn *language, void *cookie, int argc, struct value **argv)
void gdbpy_print_stack(void)
struct value * convert_value_from_python(PyObject *obj)
void add_internal_function(const char *name, const char *doc, internal_function_fn handler, void *cookie)
int gdbpy_initialize_functions(void)
PyTypeObject fnpy_object_type
gdb::unique_xmalloc_ptr< char > gdbpy_exception_to_string(PyObject *ptype, PyObject *pvalue)
void error(const char *fmt,...)
#define PyObject_HasAttrString(obj, attr)