summaryrefslogtreecommitdiffstats
path: root/linker
diff options
context:
space:
mode:
authorPavel Chupin <pavel.v.chupin@intel.com>2013-12-09 18:08:48 +0400
committerElliott Hughes <enh@google.com>2013-12-12 11:18:46 -0800
commit5407eed84b98056a5af7d95007d8d511ebad60e4 (patch)
tree4d3d1319713ade70f6ae29026b06a97b915af7c0 /linker
parent38fcbbb35a40c46e96b4df10d670d1c132910854 (diff)
downloadbionic-5407eed84b98056a5af7d95007d8d511ebad60e4.zip
bionic-5407eed84b98056a5af7d95007d8d511ebad60e4.tar.gz
bionic-5407eed84b98056a5af7d95007d8d511ebad60e4.tar.bz2
Fix debugging issues in vdso handling
Under valgrind ehdr_vdso is null and causing segfault. Adding debug info for vdso producing plenty of issues on debugging through gdbserver, removing it. It doesn't seem it should be here. Unwinding through vdso test still works. Change-Id: I1a7e233c493f2268d725fa8d7279822d07decc49 Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
Diffstat (limited to 'linker')
-rwxr-xr-xlinker/linker.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp
index fe4d6c4..6ebba8e 100755
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1750,6 +1750,9 @@ static bool soinfo_link_image(soinfo* si) {
static void add_vdso(KernelArgumentBlock& args UNUSED) {
#if defined(AT_SYSINFO_EHDR)
Elf_Ehdr* ehdr_vdso = reinterpret_cast<Elf_Ehdr*>(args.getauxval(AT_SYSINFO_EHDR));
+ if (ehdr_vdso == NULL) {
+ return;
+ }
soinfo* si = soinfo_alloc("[vdso]");
@@ -1761,7 +1764,6 @@ static void add_vdso(KernelArgumentBlock& args UNUSED) {
si->load_bias = get_elf_exec_load_bias(ehdr_vdso);
soinfo_link_image(si);
- insert_soinfo_into_debug_map(si);
#endif
}