DTrace User Address Symbol Resolution

The way in which DTrace formats user addresses can be modified by using the uresolve option, which might use one of the following four values.

  • no – If uresolve is set to no, symbol resolution is not performed, and the addresses appear only as an object name and an offset within that object. Applications that contain many symbols can incur an overhead when DTrace resolves addresses to symbol names. This overhead can be reduced with by setting uresolve=no. The object name and offset can be resolved to a symbol name by cross-referencing with the symbol table of the object.

  • symbol – This is the default value. For ustack, the option causes user addresses to be translated into the following form:

    object`symbol+offset

    For other actions, user addresses are translated into the following form:

    symbol+offset
  • basename – The basename value enables an executable user address to be associated with a name of the corresponding source code file and the line number within the file.

    For ustack, the option causes user addresses to be translated into the following form:

    object`symbol+offset (file:line)

    For other actions, user addresses are translated into the following form:

    file:line

    This feature requires a suitable DWARF to be present in the underlying load object, which must be compiled by using the -g option. In addition, DWARF must contain suitable accelerator tables, which are included by default by gcc (.debug_aranges) and versions of Oracle Developer Studio greater than 12.4 (.stab.index).

    If no suitable DWARF is available, then this option has the same effect as uresolve=symbol.

  • absolute is identical to the basename option except that the absolute paths of the file are used.