diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-07-15 17:37:28 +0200 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-07-15 17:42:07 +0200 |
commit | ca5268b6be265580b91ef75c1a1a9815f581ae42 (patch) | |
tree | bfe99b4ca46a726297c74f34ea68abe95d546ec2 /gdb/doc | |
parent | 700ca40f6fc1addd7238f4ab57f76c095ad3c99f (diff) | |
download | gdb-ca5268b6be265580b91ef75c1a1a9815f581ae42.zip gdb-ca5268b6be265580b91ef75c1a1a9815f581ae42.tar.gz gdb-ca5268b6be265580b91ef75c1a1a9815f581ae42.tar.bz2 |
Validate symbol file using build-id
Consumer part of the "build-id" attribute.
gdb/ChangeLog
2015-07-15 Aleksandar Ristovski <aristovski@qnx.com
Jan Kratochvil <jan.kratochvil@redhat.com>
Validate symbol file using build-id.
* NEWS (Changes since GDB 7.10): Add 'set validate-build-id'
and 'show validate-build-id'. Add build-id attribute.
* solib-darwin.c (_initialize_darwin_solib): Assign validate value.
* solib-dsbt.c (_initialize_dsbt_solib): Ditto.
* solib-frv.c (_initialize_frv_solib): Ditto.
* solib-spu.c (set_spu_solib_ops): Ditto.
* solib-svr4.c: Include rsp-low.h.
(NOTE_GNU_BUILD_ID_NAME): New define.
(svr4_validate): New function.
(svr4_copy_library_list): Duplicate field build_id.
(library_list_start_library): Parse 'build-id' attribute.
(svr4_library_attributes): Add 'build-id' attribute.
(_initialize_svr4_solib): Assign validate value.
* solib-target.c (solib.h): Include.
(_initialize_solib_target): Assign validate value.
* solib.c (validate_build_id, show_validate_build_id): New.
(solib_map_sections): Use ops->validate.
(clear_so): Free build_id.
(default_solib_validate): New function.
(_initialize_solib): Add "validate-build-id".
* solib.h (default_solib_validate): New declaration.
* solist.h (struct so_list): New fields 'build_idsz' and 'build_id'.
(target_so_ops): New field 'validate'.
gdb/doc/ChangeLog
2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.texinfo (Files): Add 'set validate-build-id'
and 'show validate-build-id'.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 38 |
2 files changed, 43 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 5b90cb4..fc66f0c 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com> + + * gdb.texinfo (Files): Add 'set validate-build-id' + and 'show validate-build-id'. + 2015-07-15 Aleksandar Ristovski <aristovski@qnx.com Jan Kratochvil <jan.kratochvil@redhat.com> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 932c38d..513c08e 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -17950,6 +17950,44 @@ libraries that were loaded by explicit user requests are not discarded. @end table +@table @code +@kindex set validate-build-id +@cindex override @value{GDBN} build-id check +@item set validate-build-id @var{mode} +Setting to override @value{GDBN} build-id check. + +Inferior shared libraries and symbol files may contain unique build-id. +By default @value{GDBN} will ignore symbol files with non-matching build-id +while printing: + +@smallexample + warning: Shared object "libfoo.so.1" could not be validated (remote + build ID 2bc1745e does not match local build ID a08f8767) and will be + ignored; or use 'set validate-build-id off'. +@end smallexample + +Turning off this setting would load such symbol file while still printing: + +@smallexample + warning: Shared object "libfoo.so.1" could not be validated (remote + build ID 2bc1745e does not match local build ID a08f8767) but it is + being loaded due to 'set validate-build-id off'. +@end smallexample + +If remote build-id is present but it does not match local build-id (or local +build-id is not present) then this setting enables (@var{mode} is @code{off}) or +disables (@var{mode} is @code{on}) loading of such symbol file. On systems +where build-id is not present in the remote system this setting has no effect. +The default value is @code{on}. + +Loading non-matching symbol file may confuse debugging including breakage +of backtrace output. + +@kindex show validate-build-id +@item show validate-build-id +Display the current mode of build-id check override. +@end table + Sometimes you may wish that @value{GDBN} stops and gives you control when any of shared library events happen. The best way to do this is to use @code{catch load} and @code{catch unload} (@pxref{Set |