This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/14488] New: stapdyn runtime needs deref et al.
- From: "jistone at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Sat, 18 Aug 2012 01:26:14 +0000
- Subject: [Bug runtime/14488] New: stapdyn runtime needs deref et al.
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=14488
Bug #: 14488
Summary: stapdyn runtime needs deref et al.
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: runtime
AssignedTo: systemtap@sourceware.org
ReportedBy: jistone@redhat.com
Blocks: 14178
Classification: Unclassified
stap's dyninst runtime currently doesn't provide any memory protection, so it
can easily cause SEGVs in the target process. Dyninst actually catches this,
reports "SEGV IN PROCESS", and dumps a lot of state. We'd like to instead
catch this in a controlled way with our usual deref() mechanisms. A few
possibilities:
1. See if Dyninst can install a custom handler on that error, since it seems to
already catch it, then let us resume in our own way.
2. Install our own SEGV handler and figure out how to resume ourselves. We
might end up competing for the signal handler though vs. Dyninst and the app
itself.
3. Do deref through pread() on /proc/self/mem instead, which hopefully gives
more controlled errors at bad addresses. (dsmith's idea)
Options 1 and 2, if possible, have the advantage that they only penalize
overhead on the error case. Option 3 requires at least a syscall every time,
whether or not the address is good, but I think it's still the most feasible
option for us to start with.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.