aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorThiago Jung Bauermann <bauerman@br.ibm.com>2008-10-16 03:54:00 +0000
committerThiago Jung Bauermann <bauerman@br.ibm.com>2008-10-16 03:54:00 +0000
commita08702d64763b3c67aafc3f10b0e077187a8e551 (patch)
tree550e4419773f8ac106aa49ca60dbb72e3eafc4fc /gdb/python
parenteff85da5fb9149699f6794505c9d81ca24eae754 (diff)
downloadgdb-a08702d64763b3c67aafc3f10b0e077187a8e551.zip
gdb-a08702d64763b3c67aafc3f10b0e077187a8e551.tar.gz
gdb-a08702d64763b3c67aafc3f10b0e077187a8e551.tar.bz2
2008-10-16 Thiago Jung Bauermann <bauerman@br.ibm.com>
Tom Tromey <tromey@redhat.com> gdb/ * Makefile.in (SUBDIR_PYTHON_OBS): Add python-value.o. (SUBDIR_PYTHON_SRCS): Add python-value.c. (python-value.o): New target. * configure.ac (CONFIG_OBS): Add python-value.o. (CONFIG_SRCS): Add python/python-value.c * configure: Regenerate. * python-internal.h (value_object_type): Add external declaration. (gdbpy_get_value_from_history, value_to_value_object, convert_value_from_python, gdbpy_initialize_values): Add function prototype. * python/python-value.c: New file. * python/python.c (GdbMethods): Add gdbpy_get_value_from_history. (_initialize_python): Call gdbpy_initialize_values. * python/python.h (values_in_python): Add external declaration. * value.c (value_prepend_to_list, value_remove_from_list): New functions. (preserve_values): Iterate over values_in_python list as well. * value.h (value_prepend_to_list, value_remove_from_list): Add function prototypes. gdb/doc/ * gdb.texinfo. (Values From Inferior): New subsubsection. gdb/testsuite/ * gdb.python/python-value.c: New file. * gdb.python/python-value.exp: New file.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/python-internal.h13
-rw-r--r--gdb/python/python.c4
-rw-r--r--gdb/python/python.h2
3 files changed, 16 insertions, 3 deletions
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index f850448..72f7a5f 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -43,11 +43,18 @@ typedef Py_intptr_t Py_ssize_t;
#error "Unable to find usable Python.h"
#endif
-struct block;
-struct symbol;
-struct symtab_and_line;
+struct value;
extern PyObject *gdb_module;
+extern PyTypeObject value_object_type;
+
+PyObject *gdbpy_get_value_from_history (PyObject *self, PyObject *args);
+
+PyObject *value_to_value_object (struct value *v);
+
+struct value *convert_value_from_python (PyObject *obj);
+
+void gdbpy_initialize_values (void);
struct cleanup *make_cleanup_py_decref (PyObject *py);
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 8bc24c2..77d8774 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -52,6 +52,8 @@ static PyObject *gdbpy_flush (PyObject *, PyObject *);
static PyMethodDef GdbMethods[] =
{
+ { "get_value_from_history", gdbpy_get_value_from_history, METH_VARARGS,
+ "Get a value from history" },
{ "execute", execute_gdb_command, METH_VARARGS,
"Execute a gdb command" },
{ "get_parameter", get_parameter, METH_VARARGS,
@@ -398,6 +400,8 @@ Enables or disables printing of Python stack traces."),
PyModule_AddStringConstant (gdb_module, "HOST_CONFIG", (char*) host_name);
PyModule_AddStringConstant (gdb_module, "TARGET_CONFIG", (char*) target_name);
+ gdbpy_initialize_values ();
+
PyRun_SimpleString ("import gdb");
/* Create a couple objects which are used for Python's stdout and
diff --git a/gdb/python/python.h b/gdb/python/python.h
index 00ff159..102fef6 100644
--- a/gdb/python/python.h
+++ b/gdb/python/python.h
@@ -22,6 +22,8 @@
#include "value.h"
+extern struct value *values_in_python;
+
void eval_python_from_control_command (struct command_line *);
#endif /* GDB_PYTHON_H */