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'.
This commit is contained in:
parent
700ca40f6f
commit
ca5268b6be
13 changed files with 279 additions and 1 deletions
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue