Make the debug printing in the symbol redirect machinery, easier to
understand.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2138 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_symtab2.c b/coregrind/vg_symtab2.c
index 6913303..bed06c4 100644
--- a/coregrind/vg_symtab2.c
+++ b/coregrind/vg_symtab2.c
@@ -1911,6 +1911,10 @@
/*--- General purpose redirection. ---*/
/*------------------------------------------------------------*/
+/* Set to True for debug printing. */
+static const Bool verbose_redir = False;
+
+
/* resolved redirections, indexed by from_addr */
typedef struct _CodeRedirect {
const Char *from_lib; /* library qualifier pattern */
@@ -1985,7 +1989,6 @@
static Bool resolve_redir(CodeRedirect *redir, const SegInfo *si)
{
Bool resolved;
- static const Bool verbose = False;
vg_assert(si != NULL);
vg_assert(si->seg != NULL);
@@ -1996,8 +1999,8 @@
resolved = (redir->from_addr != 0) && (redir->to_addr != 0);
- if (verbose)
- VG_(printf)("trying to resolve %s:%s / %s:%s against %s:%s\n",
+ if (0 && verbose_redir)
+ VG_(printf)(" consider FROM binding %s:%s -> %s:%s in %s(%s)\n",
redir->from_lib, redir->from_sym,
redir->to_lib, redir->to_sym,
si->filename, si->soname);
@@ -2009,9 +2012,9 @@
if (match_lib(redir->from_lib, si)) {
redir->from_addr = reverse_search_one_symtab(si, redir->from_sym);
- if (verbose)
- VG_(printf)("match lib %s passed; from_addr=%p\n",
- redir->from_lib, redir->from_addr);
+ if (verbose_redir && redir->from_addr != 0)
+ VG_(printf)(" bind FROM: %p = %s:%s\n",
+ redir->from_addr,redir->from_lib, redir->from_sym );
}
}
@@ -2020,24 +2023,25 @@
if (match_lib(redir->to_lib, si)) {
redir->to_addr = reverse_search_one_symtab(si, redir->to_sym);
- if (verbose)
- VG_(printf)("match lib %s passed; to_addr=%p\n",
- redir->to_lib, redir->to_addr);
+ if (verbose_redir && redir->to_addr != 0)
+ VG_(printf)(" bind TO: %p = %s:%s\n",
+ redir->to_addr,redir->to_lib, redir->to_sym );
+
}
}
resolved = (redir->from_addr != 0) && (redir->to_addr != 0);
- if (verbose)
+ if (0 && verbose_redir)
VG_(printf)("resolve_redir: %s:%s from=%p %s:%s to=%p\n",
redir->from_lib, redir->from_sym, redir->from_addr,
redir->to_lib, redir->to_sym, redir->to_addr);
if (resolved) {
- if (VG_(clo_verbosity) > 2 || verbose) {
- VG_(message)(Vg_DebugMsg, "redir resolved (%s:%s=%p -> ",
+ if (VG_(clo_verbosity) > 2 || verbose_redir) {
+ VG_(message)(Vg_DebugMsg, " redir resolved (%s:%s=%p -> ",
redir->from_lib, redir->from_sym, redir->from_addr);
- VG_(message)(Vg_DebugMsg, " %s:%s=%p)",
+ VG_(message)(Vg_DebugMsg, " %s:%s=%p)",
redir->to_lib, redir->to_sym, redir->to_addr);
}
@@ -2060,6 +2064,10 @@
CodeRedirect **prevp = &unresolved_redir;
CodeRedirect *redir, *next;
+ if (verbose_redir)
+ VG_(printf)("Considering redirs to/from %s(soname=%s)\n",
+ si->filename, si->soname);
+
/* visit each unresolved redir - if it becomes resolved, then
remove it from the unresolved list */
for(redir = unresolved_redir; redir != NULL; redir = next) {
@@ -2161,6 +2169,7 @@
"REPLACING libc(%s) with libpthread(%s)",
redirects[i].from, redirects[i].to);
}
+
}
/*------------------------------------------------------------*/