[commit: ghc] master: Linker: some extra debugging / logging (6377757)
git at git.haskell.org
git at git.haskell.org
Fri Jul 1 12:22:26 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/6377757918c1e7f63638d6f258cad8d5f02bb6a7/ghc
>---------------------------------------------------------------
commit 6377757918c1e7f63638d6f258cad8d5f02bb6a7
Author: Simon Marlow <marlowsd at gmail.com>
Date: Wed Jun 29 21:50:18 2016 +0100
Linker: some extra debugging / logging
>---------------------------------------------------------------
6377757918c1e7f63638d6f258cad8d5f02bb6a7
rts/Linker.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/rts/Linker.c b/rts/Linker.c
index b41bc1a..894a31d 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -1465,6 +1465,27 @@ void ghci_enquire(SymbolAddr* addr)
}
}
}
+
+void ghci_find(SymbolAddr *addr);
+void ghci_find(SymbolAddr *addr)
+{
+ ObjectCode *oc;
+ uint32_t i;
+
+ for (oc = objects; oc != NULL; oc = oc->next) {
+ for (i = 0; i < (uint32_t)oc->n_sections; i++) {
+ Section *section = &oc->sections[i];
+ if (addr > section->start &&
+ (StgWord)addr < (StgWord)section->start+section->size) {
+ debugBelch("%p is in %" PATH_FMT, addr,
+ oc->archiveMemberName ?
+ oc->archiveMemberName : oc->fileName);
+ debugBelch(", section %d, offset %lx\n", i,
+ (StgWord)addr - (StgWord)section->start);
+ }
+ }
+ }
+}
#endif
#if RTS_LINKER_USE_MMAP
@@ -2537,6 +2558,10 @@ int ocTryLoad (ObjectCode* oc) {
}
}
+ IF_DEBUG(linker, debugBelch("Resolving %" PATH_FMT "\n",
+ oc->archiveMemberName ?
+ oc->archiveMemberName : oc->fileName));
+
# if defined(OBJFORMAT_ELF)
r = ocResolve_ELF ( oc );
# elif defined(OBJFORMAT_PEi386)
More information about the ghc-commits
mailing list