Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 513288 Details for
Bug 717136
markers in DSO do not get called
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh92 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Fix SDT relocations in prelinked modules
rhbz717136-Fix-SDT-relocations-in-prelinked-modules.patch (text/plain), 2.45 KB, created by
Josh Stone
on 2011-07-14 23:05:30 UTC
(
hide
)
Description:
Fix SDT relocations in prelinked modules
Filename:
MIME Type:
Creator:
Josh Stone
Created:
2011-07-14 23:05:30 UTC
Size:
2.45 KB
patch
obsolete
>From 9829768104cba372c4f0a1870fdfe0cf89d0d15d Mon Sep 17 00:00:00 2001 >From: Josh Stone <jistone@redhat.com> >Date: Thu, 14 Jul 2011 15:32:42 -0700 >Subject: [PATCH] rhbz717136: Fix SDT relocations in prelinked modules > >* tapsets.cxx (sdt_query::handle_probe_entry): The debuginfoless SDT > addresses are relative to the ELF file, so get only that bias. The > DWARF bias is not interesting here. > (sdt_query::setup_note_probe_entry): Add the ELF bias to the semaphore > address too, so record_semaphore can completely relocate it. > (sdt_query::record_semaphore): SDT V3 semaphores need relocation too, > now removing both the bias and prelinking effects. >--- > tapsets.cxx | 14 ++++++++++---- > 1 files changed, 10 insertions(+), 4 deletions(-) > >diff --git a/tapsets.cxx b/tapsets.cxx >index 8c66f00..a8e4cba 100644 >--- a/tapsets.cxx >+++ b/tapsets.cxx >@@ -5508,9 +5508,12 @@ sdt_query::handle_probe_entry() > > bool need_debug_info = false; > >+ // We could get the Elf* from either dwarf_getelf(dwfl_module_getdwarf(...)) >+ // or dwfl_module_getelf(...). We only need it for the machine type, which >+ // should be the same. The bias is used for relocating debuginfoless probes, >+ // though, so that must come from the possibly-prelinked ELF file, not DWARF. > Dwarf_Addr bias; >- Elf* elf = (dwarf_getelf (dwfl_module_getdwarf (dw.mod_info->mod, &bias)) >- ?: dwfl_module_getelf (dw.mod_info->mod, &bias)); >+ Elf* elf = dwfl_module_getelf (dw.mod_info->mod, &bias); > > if (have_kprobe()) > { >@@ -5732,6 +5735,10 @@ sdt_query::setup_note_probe_entry (int type, const char *data, size_t len) > semaphore += base - base_ref; > pc += base - base_ref; > >+ // The semaphore also needs the ELF bias added now, so >+ // record_semaphore can properly relocate it later. >+ semaphore += bias; >+ > if (sess.verbose > 4) > clog << _F(" saw .note.stapsdt %s%s ", probe_name.c_str(), (provider_name != "" ? _(" (provider ")+provider_name+") " : "").c_str()) << "@0x" << hex << pc << dec << endl; > >@@ -5824,8 +5831,7 @@ sdt_query::record_semaphore (vector<derived_probe *> & results, unsigned start) > addr = lookup_symbol_address(dw.module, semaphore.c_str()); > if (addr) > { >- if (probe_type != uprobe3_type >- && dwfl_module_relocations (dw.module) > 0) >+ if (dwfl_module_relocations (dw.module) > 0) > dwfl_module_relocate_address (dw.module, &addr); > // XXX: relocation basis? > for (unsigned i = start; i < results.size(); ++i) >-- >1.7.6 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 717136
:
511947
|
511948
| 513288