public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* [Bug runtime/10857] New: dwarf unwinder doesn't handle call frame instructions taking expressions
@ 2009-10-28 13:27 mjw at redhat dot com
  2010-05-06 19:02 ` [Bug runtime/10857] " fche at redhat dot com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: mjw at redhat dot com @ 2009-10-28 13:27 UTC (permalink / raw)
  To: systemtap

The runtime dwarf unwinder doesn't handle DW_CFA_def_cfa_expression,
DW_CFA_expression and DW_CFA_val_expression which handle values defined as dwarf
operations. The unwinder fails in such cases and we need to fall back to raw
stack walking.

It would be nice to reuse some of the loc2c code for this so we are able to kind
of precompile the operations. That would also benefit from the (stack depth)
limits already in place in loc2c (but note that not all dwarf expressions are
allowed in the call frame information). It isn't clear how to do this simply.

-- 
           Summary: dwarf unwinder doesn't handle call frame instructions
                    taking expressions
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: runtime
        AssignedTo: systemtap at sources dot redhat dot com
        ReportedBy: mjw at redhat dot com


http://sourceware.org/bugzilla/show_bug.cgi?id=10857

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug runtime/10857] dwarf unwinder doesn't handle call frame instructions taking expressions
  2009-10-28 13:27 [Bug runtime/10857] New: dwarf unwinder doesn't handle call frame instructions taking expressions mjw at redhat dot com
@ 2010-05-06 19:02 ` fche at redhat dot com
  2010-05-07 19:33 ` roland at gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: fche at redhat dot com @ 2010-05-06 19:02 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From fche at redhat dot com  2010-05-06 13:17 -------
Have such expressions been seen in the wild?

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=10857

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug runtime/10857] dwarf unwinder doesn't handle call frame instructions taking expressions
  2009-10-28 13:27 [Bug runtime/10857] New: dwarf unwinder doesn't handle call frame instructions taking expressions mjw at redhat dot com
  2010-05-06 19:02 ` [Bug runtime/10857] " fche at redhat dot com
@ 2010-05-07 19:33 ` roland at gnu dot org
  2010-08-11 19:22 ` roland at gnu dot org
  2010-08-16 18:28 ` fche at redhat dot com
  3 siblings, 0 replies; 5+ messages in thread
From: roland at gnu dot org @ 2010-05-07 19:33 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From roland at gnu dot org  2010-05-07 01:32 -------
If "in the wild" means do they actually appear in real binaries, the answer is
yes.  If you mean "has it hampered some unwinding some systemtap user tried",
then who knows.

pmachata recently did some scripted CFI analysis on a large raft of OS binaries,
which cited the subset of these cases where a recently-fixed gcc bug was
involved.  It would be simpler to script grepping for all DW_CFA_expression,
DW_CFA_def_cfa_expression, and DW_CFA_val_expression uses.

GCC can emit DW_CFA_expression and DW_CFA_def_cfa_expression for x86 and perhaps
other machines.  Without doing the aforementioned grepping, off hand we have
only noticed it being used in x86-32 code generation so far.

glibc uses those in the signal frame on x86_64, and uses DW_CFA_val_expression
in its locking code (used both inside glibc and for libpthread) for x86_64 and i386.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=10857

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug runtime/10857] dwarf unwinder doesn't handle call frame instructions taking expressions
  2009-10-28 13:27 [Bug runtime/10857] New: dwarf unwinder doesn't handle call frame instructions taking expressions mjw at redhat dot com
  2010-05-06 19:02 ` [Bug runtime/10857] " fche at redhat dot com
  2010-05-07 19:33 ` roland at gnu dot org
@ 2010-08-11 19:22 ` roland at gnu dot org
  2010-08-16 18:28 ` fche at redhat dot com
  3 siblings, 0 replies; 5+ messages in thread
From: roland at gnu dot org @ 2010-08-11 19:22 UTC (permalink / raw)
  To: systemtap



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |11898
              nThis|                            |


http://sourceware.org/bugzilla/show_bug.cgi?id=10857

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug runtime/10857] dwarf unwinder doesn't handle call frame instructions taking expressions
  2009-10-28 13:27 [Bug runtime/10857] New: dwarf unwinder doesn't handle call frame instructions taking expressions mjw at redhat dot com
                   ` (2 preceding siblings ...)
  2010-08-11 19:22 ` roland at gnu dot org
@ 2010-08-16 18:28 ` fche at redhat dot com
  3 siblings, 0 replies; 5+ messages in thread
From: fche at redhat dot com @ 2010-08-16 18:28 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From fche at redhat dot com  2010-08-16 18:28 -------
*** Bug 11898 has been marked as a duplicate of this bug. ***

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=10857

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-08-16 18:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-28 13:27 [Bug runtime/10857] New: dwarf unwinder doesn't handle call frame instructions taking expressions mjw at redhat dot com
2010-05-06 19:02 ` [Bug runtime/10857] " fche at redhat dot com
2010-05-07 19:33 ` roland at gnu dot org
2010-08-11 19:22 ` roland at gnu dot org
2010-08-16 18:28 ` fche at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).