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]

proposed patch for SW9937


Add build id support for user modules.  The build id is an offset which is
adjusted relative to dwarf_module_base for ET_EXEC or the load address from the
task manager for ET_DYN.

sym.c
 Created generic build id checker: _stp_build_id_check
 Modified _stp_module_check, the kernel build id checker, to use
  _stp_build_id_check
 Created _stp_usermodule_check, the user build id checker, which uses
  _stp_build_id_check.  This is called from the task manager callback
  stap_uprobe_change_plus for the process found and mmap found cases.

sym.h
 Added module_base for holding the base address for ET_EXEC.
 For ET_DYN case the load address from task manager is used

translate.cxx
 Modified dump_unwindsyms:
 1. relax the check to allow user modules to set build_id_vaddr
 2. save module_base for ET_EXEC.  For ET_DYN we use the task finder.
 3. relax the check to allow user modules to set build_id_bits.
 4. add a ET_DYN case for outputting build_id_vaddr

For the above the build id offsets look like:
 (via build_id_vaddr - base in dump_unwindsyms) :
 .name = "libsdt_V3_uprobe.so",....build_id_offset = 0x1a0,
 .name = "sdt_misc_V3_uprobe.x",....build_id_offset = 0x24c,


Attachment: ,git.diff
Description: Text document


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