This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ERROR: Build-id mismatch: "kernel" vs. "vmlinux" byte 0 (0x00 vs 0x00)


Hi -

> The tcp_trace.stp works fine with systemtap 1.1 on  my system, but 1.2 
> and the newer snapshots fail.

OK, that's good information.  Next step then is to run stap -k with
both versions, and compare the /tmp/stapXXXX/* files, expecially
stap-symbols.h.  They should be the same, specifically they should
include the same buildid bytes / addresses.  That would leave only
the buildid checking logic as different.  The new code in runtime/sym.c
does this:

      set_fs(KERNEL_DS);
      rc1 = get_user(theory,((unsigned char*) &m->build_id_bits[j]));
      rc2 = get_user(practice,((unsigned char*) (void*) (notes_addr+j)));
      set_fs(oldfs);

in order to fetch two bytes from kernel space (from not entirely
reliable addresses).  The old code just memcmp'd the whole arrays
(leading to crashes in the case of not entirely correct addresses).


- FChE


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]