diff options
author | Joel Brobecker <brobecker@gnat.com> | 2010-01-18 06:25:22 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2010-01-18 06:25:22 +0000 |
commit | 973817a31359035221fb443a623830cdaab31de5 (patch) | |
tree | 0814db4b2c00155035ab6fd6c4a39bff660576b8 /gdb/python | |
parent | 23db03a6052d85eb4a66bf31331ca8d611174af4 (diff) | |
download | gdb-973817a31359035221fb443a623830cdaab31de5.zip gdb-973817a31359035221fb443a623830cdaab31de5.tar.gz gdb-973817a31359035221fb443a623830cdaab31de5.tar.bz2 |
Allow "source" to load python scripts.
* exceptions.h (enum errors): Add UNSUPPORTED_ERROR.
* python/python.c (source_python_script): New function.
* python/python.h (source_python_script): Add declaration.
* cli/cli-cmds.c: #include exceptions.h and python/python.h.
(script_ext_off, script_ext_soft, script_ext_strict)
(script_ext_enums, script_ext_mode): New static constants.
(show_script_ext_mode, find_and_open_script): New functions.
(source_script): Enhance to handle Python scripts.
(init_cli_cmds): Add set/show script-extension commands.
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/python.c | 24 | ||||
-rw-r--r-- | gdb/python/python.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c index 827372c..1f1ae72 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -343,6 +343,22 @@ gdbpy_parse_and_eval (PyObject *self, PyObject *args) return value_to_value_object (result); } +/* Read a file as Python code. STREAM is the input file; FILE is the + name of the file. */ + +void +source_python_script (FILE *stream, char *file) +{ + PyGILState_STATE state; + + state = PyGILState_Ensure (); + + PyRun_SimpleFile (stream, file); + + fclose (stream); + PyGILState_Release (state); +} + /* Printing. */ @@ -525,6 +541,14 @@ eval_python_from_control_command (struct command_line *cmd) error (_("Python scripting is not supported in this copy of GDB.")); } +void +source_python_script (FILE *stream, char *file) +{ + fclose (stream); + throw_error (UNSUPPORTED_ERROR, + _("Python scripting is not supported in this copy of GDB.")); +} + #endif /* HAVE_PYTHON */ diff --git a/gdb/python/python.h b/gdb/python/python.h index f35827b..5d93f67 100644 --- a/gdb/python/python.h +++ b/gdb/python/python.h @@ -24,6 +24,8 @@ void eval_python_from_control_command (struct command_line *); +void source_python_script (FILE *stream, char *file); + int apply_val_pretty_printer (struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, |