error::dwarf man page on OpenSuSE

Man page or keyword search:  
man Server   25941 pages
apropos Keyword Search (all sections)
Output format
OpenSuSE logo
[printable version]

ERROR::DWARF(7stap)					   ERROR::DWARF(7stap)

NAME
       error::dwarf - dwarf debuginfo quality problems

DESCRIPTION
       Systemtap  sometimes  relies  on ELF/DWARF debuginfo for programs being
       instrumented to	locate	places	to  probe,  or	context	 variables  to
       read/write,  just  like a symbolic debugger does.  Even though examina‐
       tion of the program's source code may show  variables  or  lines	 where
       probes  may  be	desired,  the compiler must preserve information about
       them for systemtap (or a debugger such as gdb) to get  pinpoint	access
       to  the	desired	 information.  If a script requires such data, but the
       compiler did not preserve enough of it, pass-2 errors may result.

       Common conditions that trigger these problems include;

       compiler version
	      Prior to GCC version 4.5, debuginfo quality was fairly  limited.
	      Often  developers	 were advised to build their programs with -O0
	      -g flags to disable optimization.	 GCC version 4.5 introduced  a
	      facility	called	"variable-tracking assignments" that allows it
	      to generate high-quality debuginfo under full -O2	 -g  optimiza‐
	      tion.   It  is  not  perfect, but much better than before.  Note
	      that, due to another gcc bug (PR51358) -O0 -g can actually some‐
	      times make debuginfo quality worse than for -O2 -g.

       function inlining
	      Even  modern  gcc	 sometimes  has	 problems  with parameters for
	      inlined functions.  It may be necessary to change the script  to
	      probe  at	 a slightly different place (try a .statement() probe,
	      instead of a .function() probe, somewhere	 a  few	 source	 lines
	      into  the	 body of the inlined function.	Or try putting a probe
	      at the call site	of  the	 inlined  function.   Or  use  the  if
	      @defined($var) { ... } script language construct to test for the
	      resolvability of the context variable before using it.

       instruction reordering
	      Heavily optimized code often smears the instructions from multi‐
	      ple  source  statements together.	 This can leave systemtap with
	      no place to choose to place  a  probe,  especially  a  statement
	      probe  specified	by line number.	 Systemtap may advise to try a
	      nearby line number, but these may not work  well	either.	  Con‐
	      sider  placing  a	 probe	by a statement wildcard or line number
	      range.

ALTERNATIVES
       In order to reduce reliance on ELF/DWARF debuginfo, consider the use of
       statically  compiled-in instrumentation, such as kernel tracepoints, or
       <sys/sdt.h> userspace markers.  Such  instrumentation  hook  sites  are
       relatively  low	cost  (just one NOP instruction for sdt.h), and nearly
       guarantee the availability of parameter data and a reliable probe site,
       all without reliance on debuginfo.

SEE ALSO
       stap(1),	      http://dwarfstd.org/,	 http://sourceware.org/system‐
       tap/wiki/TipContextVariables,	    http://gcc.gnu.org/wiki/Var_Track‐
       ing_Assignments, error::reporting(7stap)

							   ERROR::DWARF(7stap)
[top]

List of man pages available for OpenSuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net