diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2012-04-17 15:54:35 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2012-04-17 15:54:35 +0000 |
commit | bccbefd2aab863e24a122ea686cbd263041b4709 (patch) | |
tree | 10470bdc16fff1f1e020d6c8e58913e84ab39575 /gdb/python | |
parent | bf88dd68493db2b646b42165e6258573d3a597b5 (diff) | |
download | gdb-bccbefd2aab863e24a122ea686cbd263041b4709.zip gdb-bccbefd2aab863e24a122ea686cbd263041b4709.tar.gz gdb-bccbefd2aab863e24a122ea686cbd263041b4709.tar.bz2 |
gdb/
New option "set auto-load safe-path".
* NEWS: New commands "set auto-load safe-path"
and "show auto-load safe-path".
* auto-load.c: Include gdb_vecs.h, readline/tilde.h and completer.h.
(auto_load_safe_path, auto_load_safe_path_vec)
(auto_load_safe_path_vec_update, set_auto_load_safe_path)
(show_auto_load_safe_path, add_auto_load_safe_path, filename_is_in_dir)
(filename_is_in_auto_load_safe_path_vec, file_is_auto_load_safe): New.
(source_gdb_script_for_objfile): New variable is_safe. Call
file_is_auto_load_safe. Return if it is not.
(struct loaded_script): New field loaded.
(maybe_add_script): Add parameter loaded. Initialize SLOT with it.
(print_script): Use LOADED indicator instead of FULL_PATH. Change
output "Missing" to "No".
(_initialize_auto_load): New variable cmd. Initialize
auto_load_safe_path. Register "set auto-load safe-path",
"show auto-load safe-path" and "add-auto-load-safe-path".
* auto-load.h (maybe_add_script): Add parameter loaded.
(file_is_auto_load_safe): New declaration.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: New parameters --with-auto-load-safe-path
and --without-auto-load-safe-path.
* linux-thread-db.c (try_thread_db_load_from_pdir_1)
(try_thread_db_load_from_dir): Check file_is_auto_load_safe first.
* main.c (captured_main): Check file_is_auto_load_safe for
LOCAL_GDBINIT.
* python/py-auto-load.c (gdbpy_load_auto_script_for_objfile): New
variable is_safe. Call file_is_auto_load_safe. Return if it is not.
(source_section_scripts): Call file_is_auto_load_safe. Return if it is
not.
gdb/doc/
New option "set auto-load safe-path".
* gdb.texinfo (Auto-loading): Extend the "show auto-load"
and "info auto-load" examples for safe-path. Put there also references
for "set auto-load safe-path" and "show auto-load safe-path".
New menu item for Auto-loading safe path.
(Auto-loading safe path): New node.
(Python Auto-loading): Update the expected output from "Missing"
to "No".
gdb/testsuite/
New option "set auto-load safe-path".
* gdb.python/py-objfile-script.exp (set auto-load safe-path): New.
* gdb.python/py-section-script.exp (set auto-load safe-path): New.
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-auto-load.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gdb/python/py-auto-load.c b/gdb/python/py-auto-load.c index 7eb021c..c54194d 100644 --- a/gdb/python/py-auto-load.c +++ b/gdb/python/py-auto-load.c @@ -72,14 +72,19 @@ static void gdbpy_load_auto_script_for_objfile (struct objfile *objfile, FILE *file, const char *filename) { + int is_safe; struct auto_load_pspace_info *pspace_info; + is_safe = file_is_auto_load_safe (filename); + /* Add this script to the hash table too so "info auto-load python-scripts" can print it. */ pspace_info = get_auto_load_pspace_data_for_loading (current_program_space); - maybe_add_script (pspace_info, filename, filename, &script_language_python); + maybe_add_script (pspace_info, is_safe, filename, filename, + &script_language_python); - source_python_script_for_objfile (objfile, file, filename); + if (is_safe) + source_python_script_for_objfile (objfile, file, filename); } /* Load scripts specified in OBJFILE. @@ -147,6 +152,9 @@ source_section_scripts (struct objfile *objfile, const char *source_name, { make_cleanup_fclose (stream); make_cleanup (xfree, full_path); + + if (!file_is_auto_load_safe (full_path)) + opened = 0; } else { @@ -167,7 +175,7 @@ Use `info auto-load python [REGEXP]' to list them."), IWBN if complaints.c were more general-purpose. */ - in_hash_table = maybe_add_script (pspace_info, file, full_path, + in_hash_table = maybe_add_script (pspace_info, opened, file, full_path, &script_language_python); /* If this file is not currently loaded, load it. */ |