summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2010-04-07 16:59:34 -0400
committerFrank Ch. Eigler <fche@elastic.org>2010-04-08 17:17:46 -0400
commit17b91441800b590c5ef4a0c213c2bbcd8deef696 (patch)
treecb196f9ad9afd3584c6ee733122ef1461b095a01
parent4419a86cac1f3b2feeef194899d5a5682df3905f (diff)
downloadsystemtap-steved-17b91441800b590c5ef4a0c213c2bbcd8deef696.tar.gz
systemtap-steved-17b91441800b590c5ef4a0c213c2bbcd8deef696.tar.xz
systemtap-steved-17b91441800b590c5ef4a0c213c2bbcd8deef696.zip
runtime: more diagnostics for build-id checking
* runtime/sym.c: Store individual rc's for build-id comparisons.
-rw-r--r--runtime/sym.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/runtime/sym.c b/runtime/sym.c
index 3c69fb1a..e1e6e225 100644
--- a/runtime/sym.c
+++ b/runtime/sym.c
@@ -311,15 +311,15 @@ static int _stp_module_check(void)
loc2c-runtime.h were more easily usable,
a deref() loop could do it too. */
mm_segment_t oldfs = get_fs();
- int rc;
+ int rc1, rc2;
unsigned char theory, practice;
set_fs(KERNEL_DS);
- rc = get_user(theory,((unsigned char*) &m->build_id_bits[j]));
- rc = get_user(practice,((unsigned char*) (void*) (notes_addr+j)));
+ rc1 = get_user(theory,((unsigned char*) &m->build_id_bits[j]));
+ rc2 = get_user(practice,((unsigned char*) (void*) (notes_addr+j)));
set_fs(oldfs);
- if (rc || theory != practice) {
+ if (rc1 || rc2 || (theory != practice)) {
const char *basename;
basename = strrchr(m->path, '/');
if (basename)
@@ -328,15 +328,15 @@ static int _stp_module_check(void)
basename = m->path;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
- _stp_error ("Build-id mismatch: \"%s\" vs. \"%s\" byte %d (0x%02x vs 0x%02x)\n",
- m->name, basename, j, theory, practice);
+ _stp_error ("Build-id mismatch: \"%s\" vs. \"%s\" byte %d (0x%02x vs 0x%02x) rc %d %d\n",
+ m->name, basename, j, theory, practice, rc1, rc2);
return 1;
#else
/* This branch is a surrogate for kernels
* affected by Fedora bug #465873. */
_stp_warn (KERN_WARNING
- "Build-id mismatch: \"%s\" vs. \"%s\" byte %d (0x%02x vs 0x%02x)\n",
- m->name, basename, j, theory, practice);
+ "Build-id mismatch: \"%s\" vs. \"%s\" byte %d (0x%02x vs 0x%02x) rc %d %d\n",
+ m->name, basename, j, theory, practice, rc1, rc2);
#endif
break;
} /* end mismatch */