aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python.c
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2010-05-25 15:27:17 +0000
committerDoug Evans <dje@google.com>2010-05-25 15:27:17 +0000
commit07ca107c2d958b45633ef0cdcce7219a95f0cf01 (patch)
tree489e342ae66a8cac06bdb3d0106dbccb2b15010c /gdb/python/python.c
parent8e45593ff36c03d6f39e28a0a7947ce3d282794d (diff)
downloadgdb-07ca107c2d958b45633ef0cdcce7219a95f0cf01.zip
gdb-07ca107c2d958b45633ef0cdcce7219a95f0cf01.tar.gz
gdb-07ca107c2d958b45633ef0cdcce7219a95f0cf01.tar.bz2
Add python gdb.GdbError and gdb.string_to_argv.
* NEWS: Document them. * python/py-cmd.c (cmdpy_function): Don't print a traceback if the exception is gdb.GdbError. Print a second traceback if there's an error computing the error message. (gdbpy_string_to_argv): New function. * python/py-utils.c (gdbpy_obj_to_string): New function. (gdbpy_exception_to_string): New function. * python/python-internal.h (gdbpy_string_to_argv): Declare. (gdbpy_obj_to_string, gdbpy_exception_to_string): Declare. (gdbpy_gdberror_exc): Declare. * python/python.c (gdbpy_gdberror_exc): New global. (_initialize_python): Initialize gdbpy_gdberror_exc and create gdb.GdbError. (GdbMethods): Add string_to_argv. doc/ * gdb.texinfo (Exception Handling): Document gdb.GdbError. (Commands In Python): Document gdb.string_to_argv. testsuite/ * gdb.python/py-cmd.exp: Add tests for gdb.GdbError and gdb.string_to_argv.
Diffstat (limited to 'gdb/python/python.c')
-rw-r--r--gdb/python/python.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 3110328..288c701 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -57,6 +57,8 @@ PyObject *gdbpy_children_cst;
PyObject *gdbpy_display_hint_cst;
PyObject *gdbpy_doc_cst;
+/* The GdbError exception. */
+PyObject *gdbpy_gdberror_exc;
/* Architecture and language to be used in callbacks from
the Python interpreter. */
@@ -655,6 +657,9 @@ 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_gdberror_exc = PyErr_NewException ("gdb.GdbError", NULL, NULL);
+ PyModule_AddObject (gdb_module, "GdbError", gdbpy_gdberror_exc);
+
gdbpy_initialize_auto_load ();
gdbpy_initialize_values ();
gdbpy_initialize_frames ();
@@ -771,6 +776,12 @@ Return the name of the current target charset." },
"target_wide_charset () -> string.\n\
Return the name of the current target wide charset." },
+ { "string_to_argv", gdbpy_string_to_argv, METH_VARARGS,
+ "string_to_argv (String) -> Array.\n\
+Parse String and return an argv-like array.\n\
+Arguments are separate by spaces and may be quoted."
+ },
+
{ "write", gdbpy_write, METH_VARARGS,
"Write a string using gdb's filtered stream." },
{ "flush", gdbpy_flush, METH_NOARGS,