Add support for inlining scripts into .debug_gdb_scripts.
authorDoug Evans <xdje42@gmail.com>
Sat, 31 Jan 2015 20:01:13 +0000 (12:01 -0800)
committerDoug Evans <xdje42@gmail.com>
Sat, 31 Jan 2015 20:01:13 +0000 (12:01 -0800)
commit9f0500621b6a4908986394eb0fac151ef097f520
tree36c8a7d7cb12d9cfe5afff2949ede1a252a91b48
parent312809f8838911dabff84d7ad3ccf341307d2b19
Add support for inlining scripts into .debug_gdb_scripts.

include/gdb/ChangeLog:

* section-scripts.h: Remove "future extension" comment.
(SECTION_SCRIPT_ID_PYTHON_TEXT): New macro.
(SECTION_SCRIPT_ID_SCHEME_TEXT): New macro.

gdb/ChangeLog:

* NEWS: Mention inlined scripts in .debug_gdb_scripts section.
* auto-load.c: #include ctype.h.
(struct auto_load_pspace_info): Replace member loaded_scripts with
new members loaded_script_files, loaded_script_texts.
(auto_load_pspace_data_cleanup): Update.
(init_loaded_scripts_info): Update.
(get_auto_load_pspace_data_for_loading): Update.
(maybe_add_script_file): Renamed from maybe_add_script.  All callers
updated.
(maybe_add_script_text): New function.
(clear_section_scripts): Update.
(source_script_file, execute_script_contents): New functions.
(source_section_scripts): Add support for
SECTION_SCRIPT_ID_PYTHON_TEXT, SECTION_SCRIPT_ID_GUILE_TEXT.
(print_scripts): New function.
(auto_load_info_scripts): Also print inlined scripts.
(maybe_print_unsupported_script_warning): Renamed from
unsupported_script_warning_print.  All callers updated.
(maybe_print_script_not_found_warning): Renamed from
script_not_found_warning_print.  All callers updated.
* extension-priv.h (struct extension_language_script_ops): New member
objfile_script_executor.
* extension.c (ext_lang_objfile_script_executor): New function.
* extension.h (objfile_script_executor_func): New typedef.
(ext_lang_objfile_script_executor): Declare.
* guile/guile-internal.h (gdbscm_execute_objfile_script): Declare.
* guile/guile.c (guile_extension_script_ops): Update.
* guile/scm-objfile.c (gdbscm_execute_objfile_script): New function.
* python/python.c (python_extension_script_ops): Update.
(gdbpy_execute_objfile_script): New function.

gdb/doc/ChangeLog:

* gdb.texinfo (dotdebug_gdb_scripts section): Update docs to
distinguish script files vs inlined scripts.
* python.texi (Python Auto-loading): Ditto.

gdb/testsuite/ChangeLog:

* gdb.guile/scm-section-script.c: Add duplicate inlined section script
entries.  Duplicate file section script entries.
* gdb.guile/scm-section-script.exp: Add tests for duplicate entries,
inlined entries.  Add test for safe-path rejection.
* gdb.python/py-section-script.c: Add duplicate inlined section script
entries.  Duplicate file section script entries.
* gdb.python/py-section-script.exp: Add tests for duplicate entries,
inlined entries.  Add test for safe-path rejection.
20 files changed:
gdb/ChangeLog
gdb/NEWS
gdb/auto-load.c
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/doc/python.texi
gdb/extension-priv.h
gdb/extension.c
gdb/extension.h
gdb/guile/guile-internal.h
gdb/guile/guile.c
gdb/guile/scm-objfile.c
gdb/python/python.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.guile/scm-section-script.c
gdb/testsuite/gdb.guile/scm-section-script.exp
gdb/testsuite/gdb.python/py-section-script.c
gdb/testsuite/gdb.python/py-section-script.exp
include/gdb/ChangeLog
include/gdb/section-scripts.h