Changeset View
Changeset View
Standalone View
Standalone View
devel/gdb/files/commit-df22c1e5d5
- This file was added.
Property | Old Value | New Value |
---|---|---|
fbsd:nokeywords | null | yes \ No newline at end of property |
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
commit df22c1e5d53c38f38bce6072bb46de240f9e0e2b | |||||
Author: John Baldwin <jhb@FreeBSD.org> | |||||
Date: Tue Mar 12 13:39:02 2019 -0700 | |||||
Handle an edge case for minisym TLS variable lookups. | |||||
If a TLS variable is provided by a minisym from a separate debug file, | |||||
the separate debug file is passed to | |||||
gdbarch_fetch_tls_load_module_address. However, the object files | |||||
stored in the shared object list are the original object files, not | |||||
the separate debug object files. In this case, | |||||
svr4_fetch_objfile_link_map was failing to find the link map entry | |||||
since the debug object file is not in its internal list, only the | |||||
original object file. | |||||
gdb/ChangeLog: | |||||
* solib-svr4.c (svr4_fetch_objfile_link_map): Look for | |||||
objfile->separate_debug_objfile_backlink if not NULL. | |||||
diff --git gdb/solib-svr4.c gdb/solib-svr4.c | |||||
index 84693c1766..14a471b6dc 100644 | |||||
--- gdb/solib-svr4.c | |||||
+++ gdb/solib-svr4.c | |||||
@@ -1551,6 +1551,11 @@ svr4_fetch_objfile_link_map (struct objfile *objfile) | |||||
if (objfile == symfile_objfile) | |||||
return info->main_lm_addr; | |||||
+ /* If OBJFILE is a separate debug object file, look for the | |||||
+ original object file. */ | |||||
+ if (objfile->separate_debug_objfile_backlink != NULL) | |||||
+ objfile = objfile->separate_debug_objfile_backlink; | |||||
+ | |||||
/* The other link map addresses may be found by examining the list | |||||
of shared libraries. */ | |||||
for (so = master_so_list (); so; so = so->next) |