er_print man page on OpenIndiana

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

er_print(1)							   er_print(1)

NAME
       er_print	 -  print an ASCII report from one or more performance experi‐
       ments

SYNOPSIS
       er_print [ - | -script script | -command | -V ] experiment-list

DESCRIPTION
       er_print is a utility that generates a plain-text version of the	 vari‐
       ous displays supported by the Performance Analyzer.  The output is dis‐
       played on the standard output.  Experiment files	 are  generated	 using
       the  collect  command,  or the dbx collector commands.  The experiment-
       list can contain either experiment names or experiment group names.  An
       experiment  group  is  defined by a file that contains the names of the
       experiments in the group.  You can read experiments on descendant  pro‐
       cesses  either  by  referring  to them explicitly or by constructing an
       experiment group for them as described in the collect(1) man page.

       Based on the data collected, various metrics of performance can be com‐
       puted for functions, callers and callees, source files, and disassembly
       listings.  The data collected and metrics generated  are	 described  in
       the   collect(1)	 man  page.   The  graphical  displays	available  are
       described in the analyzer(1) man page.

OPTIONS
       Option	       Meaning

       -	       Enter interactive mode to read er_print	commands  from
		       the input terminal.

       -script script  Read er_print commands from the file script, which con‐
		       tains one command per line.

       -command	       Process the given command.

       -V	       Display version information and exit.

       The options are processed in the order  they  appear.  Options  can  be
       repeated.   Scripts,  - arguments and explicit commands can be mixed in
       any order.  If no command or script arguments  are  supplied,  er_print
       enters interactive mode to read commands from the input terminal. Input
       from the input terminal is terminated with the quit command.

       Any line that ends in \ has the \ character removed, and the content of
       the  next  line	appended before the line is parsed.  There is no limit
       (other than total memory) to how many continuation lines you  can  use.
       Any  arguments  that contain blanks must be surrounded by double quotes
       ("), whether on the command line, or read from scripts, or read from  a
       .er.rc file.

       After  each command is processed, any error or warning messages arising
       from the processing are written.	 Summary statistics on the  processing
       can be printed with the procstats command.

COMMANDS
       The  commands  accepted	by the er_print utility are listed below.  Any
       command can be abbreviated by a shorter string, as long as the  command
       is unambiguous.

   Commands Controlling the Function List
       functions
	      Write  the  function  list  with the current set of metrics. The
	      function list includes any load objects whose functions are hid‐
	      den with the object_select command.

       metrics metric_spec
	      Set  the	function  list metrics (the same metrics are also used
	      for source and disassembly, and for lines and pcs).  metric_spec
	      is  a  list of metric keywords separated by colons.  For dynamic
	      metrics, that is, metrics based on measured data,	 each  keyword
	      is  of  the  form <flavor><visibility><metric-name>.  For static
	      metrics, that is, metrics based on the static properties of  the
	      load  objects in the experiments (name, address, and size), each
	      keyword is of the	 form  [<visibility>]<metric-name>,  with  the
	      <visibility> setting being optional.

	      <flavor>	can  be either "i" for inclusive or "e" for exclusive.
	      The  combinations	 "ie"  and  "ei"  are  expanded:  for  example
	      "ie<visibility><metric-name>" is expanded to "i<visibility><met‐
	      ric-name>:e<visibility><metric-name>"

	      <visibility> can be any combination of "." (to show  the	metric
	      as  a  time), "%" (to show it as a percentage), and "+" (to show
	      it as a count).  If the metric can be shown only as  a  time  or
	      only  as	a count, "." and "+" have the same meaning.  For hard‐
	      ware counter profiling experiments, and counters that  count  in
	      cycles,  the metric is normally shown as a time ("."); it can be
	      shown as a count using "+" in its <visibility> field.  The order
	      of  appearance  of  time, percent, and count is fixed: it is not
	      affected by the order of the characters in the <visibility> set‐
	      ting.   For  static metrics, "+", ".", and "%" all have the same
	      meaning.

	      <visibility> can also be specified as a "!",  meaning  turn  off
	      the  metric.   It is normally not used, but is used in the dmet‐
	      rics command (q.v.), used to set default metrics to override the
	      built-in	visibility defaults for each type of metric.  The same
	      metric cannot appear multiple times in the  metric_spec;	if  it
	      does,  it	 is reported as an error.  If the metric "name" is not
	      in the list, it is appended to it.  A list of all the  available
	      <metric-name>  values for the experiments loaded can be obtained
	      with the metric_list command.  See the collect(1) man  page  for
	      more information on metrics.

	      By  default,  use	 the metric setting based on the dmetrics com‐
	      mand, processed  from .er.rc files, as described under  default-
	      setting  commands,  below.  If a metrics command explicitly sets
	      metric_spec to default, restore the default settings appropriate
	      to  the data recorded.  When metrics are reset, the default sort
	      metric is set in the new list.  If metric_spec is omitted, print
	      the current metrics setting.

	      In  addition to setting the metrics for the function list, etc.,
	      set cmetrics for	caller-callees,	 set  data_metrics  for	 data-
	      derived  output,	and  set  indxobj_metrics to match the metrics
	      settings.	 See those commands for further information.

	      If a metrics command has an error in it, or no  metrics  in  the
	      specification correspond to the current data, ignore the command
	      with a warning, and keep the previous settings in effect.

       sort metric_spec
	      Sort the function list by the given metric. The  metric_spec  is
	      described	 under	metrics;  it  can  be preceeded by a "-" sign,
	      specifying reverse sort.	For example:

		   sort i.user

	      means to sort by inclusive user time.  The <visibility>  in  the
	      metric  name  does  not affect the sort order.  If more than one
	      metric is named in the metric_spec, use the first	 one  that  is
	      visible.	 If  none of the metrics named are visible, ignore the
	      command.

	      By default, use the metric sort setting based on the dsort  com‐
	      mand,  processed	from .er.rc files, as described under default-
	      setting commands, below.	If a sort command explicitly sets met‐
	      ric_spec to default, use the default settings.

	      If metric_spec is omitted, print the current sort metric.

       fsummary
	      Write  the summary panel for each function in the function list,
	      in the order specified by the current sort metric.  Include  any
	      load  objects  in	 the  function list whose functions are hidden
	      with the object_select command.

       fsingle function_name [N | ADDR]
	      Write the summary panel for the named  function.	 The  optional
	      parameter	 is  needed for those cases where the function name is
	      ambiguous; see under the "source" command for more information.

   Commands Controlling the Callers-Callees List
       callers-callees
	      Write the callers-callees panel for  each	 function,  using  the
	      last cmetrics specification, in the order specified by the func‐
	      tion sort metric (sort).	Within each caller-callee report,  the
	      callers and callees are sorted by the caller-callee sort metrics
	      (csort).

       cmetrics metric_spec
	      Set the caller-callee metrics. The metric_spec is defined in the
	      metrics  section,	 with the addition of the <flavor> "a" for at‐
	      tributed.

	      By default, set the caller-callee metrics to match the  function
	      list  metrics  whenever they are changed.	 Caller-callee attrib‐
	      uted metrics are inserted in front of the	 corresponding	exclu‐
	      sive  and	 inclusive metrics, with <visibility> corresponding to
	      the logical or  of  the  <visibility>  setting  for  those  two.
	      Static  metric settings are copied to the caller-callee metrics.
	      If the metric "name" is not in the list, it is appended  to  it.
	      A list of all the available <metric-name> values for the experi‐
	      ments loaded can be obtained with the cmetric_list command.

	      If metric_spec is omitted, print the current caller-callee  met‐
	      rics  setting.  If a cmetrics command has an error in it, ignore
	      it with a warning, and keep the previous settings in effect.

       csingle function_name [N | ADDR]
	      Write the callers-callees panel for  the	named  function.   The
	      optional	parameter is needed for those cases where the function
	      name is ambiguous; see  under  the  "source"  command  for  more
	      information.

       csort metric_spec
	      Sort  the	 callers and callees within the callers-callees report
	      for each function by the given metric.  The csort metric must be
	      either  an  attributed  metric, or a static metric.  If multiple
	      metrics are specified,  sort  by	the  first  visible  one  that
	      matches.

	      Whenever	metrics	 are set, either explicitly or by default, set
	      the caller-callee sort metric based on the function metrics:  if
	      sorting  is  by a dynamic metric, either inclusive or exclusive,
	      sort by the corresponding attributed metric; if sorting is by  a
	      static metric, sort by it.

	      If  metric-spec  is  omitted,  print the current callers-callees
	      sort metric.

   Commands Controlling Leak and Allocation Lists
       leaks  Write the list of leaks, sorted by size,	along  with  the  call
	      stack for each. Aggregate the entries in the leak list by common
	      call stack.

       allocs Write the list of allocations, sorted by size,  along  with  the
	      call  stack  for	each. Aggregate the entries in the allocations
	      list by common call stack.

   Commands Controlling Source and Disassembly Listings
       pcs    Write a list  of	program	 counters  (PCs)  and  their  metrics,
	      ordered  by  the current sort metric.  Include lines in the list
	      that show aggregated metrics for each load  object  whose	 func‐
	      tions are hidden with the object_select command.

       psummary
	      Write  the  summary metrics panel for each PC in the PC list, in
	      the order specified by the current sort metric.

       lines  Write a list of source lines and their metrics, ordered  by  the
	      current  sort metric. Include lines in the list that show aggre‐
	      gated metrics for each function that does not  have  line-number
	      information, or whose source file is unknown. Also include lines
	      that show aggregated metrics for each load  object  whose	 func‐
	      tions are hidden with the object_select command.

       lsummary
	      Write the summary metrics panel for each line in the lines list,
	      in the order specified by the current sort metric.

       source { filename | function_name } [N | ADDR]
	      Write annotated source of the  given  object  file,  or  of  the
	      object  file  containing the given function.  If the name of the
	      function is a that of a C++  function  or	 a  Java  method,  the
	      demangled	 name,	in  either  short or long form, or the mangled
	      name can be used.	 If the demangled  name	 contains  spaces,  it
	      must  be surrounded by double quotes.  The optional parameter, N
	      or ADDR, is needed for those cases where the file name or	 func‐
	      tion  name  is  ambiguous.   If the N form is used, pick the Nth
	      possible choice (with the numbering starting from 1).  If	 there
	      is  more	than one possibility, and the N supplied is not within
	      the possible range, report an error; if there is only one possi‐
	      bility, ignore any such error.

       If  the	ADDR  form  is used, it is written as @segment-number:address.
       The segment-number:address values should be specified exactly  as  they
       appear as the address metric for the function.

       If  an  ambiguous  name is given without the specifier, print a list of
       choices instead of the annotated source. Each list  item	 contains  the
       number  that can be used for N, the name of the object module that ref‐
       erences the function or file and, in the case of an ambiguous function,
       the function name.

       The  default  source  context for any function is defined as the source
       file to which the first instruction in that function is attributed.  It
       is  normally the source file compiled to produce the object module con‐
       taining the function.  Immediately following the first instruction, add
       an  index  line	for  the function.  Display index lines as text within
       angle brackets in the form shown below:

	    <Function: f_name>

       Alternate source contexts consist of other files that have instructions
       in the function attributed to them.  Such contexts include instructions
       coming from include files and instructions from functions inlined  into
       the  named  function.   If  there  are  any  alternate source contexts,
       include a list of extended index lines at the beginning of the  default
       source  context	to  indicate  where  the alternate source contexts are
       located in the following form:

	    <Function: f, instructions from source file src.h>

       The function name can also be specified as function`file`,  where  file
       is used to specify an alternate source context for the function.

       Note:  If  the  -source	argument is used when invoking er_print on the
       command line, the backslash escape  character  must  prepend  the  file
       quotes.	In  other  words,  the	function  name	is  written  as	 func‐
       tion\`file\`.  The backslash is not required, and should not  be	 used,
       when er_print is in interactive mode.

       Normally,  when	the  default source context is used, metrics are shown
       for all functions from the source file.	If the source file is  explic‐
       itly  used  as  an alternate source context, metrics are shown only for
       the named function.

       If any compiler commentary has been selected, interleave the commentary
       with  the  source lines in the source listing.  Prepend the string "##"
       to lines with metrics that are equal to or exceed a threshold  percent‐
       age  of	the maximum for that metric within the file, to make it easier
       for you to find the important lines.   Govern  the  threshold  and  the
       classes	of  commentary	to  show  using	 the source-threshold setting,
       sthresh, and the preferences setting for	 source	 compiler  commentary,
       scc.

       Search  for  the file using the path as specified by a setpath command.
       If the file is  not  found,  search  under  the	absolute  pathname  as
       recorded	 in  the  executable.	If  you have moved the sources, or the
       experiment was recorded in a different file system, you put a  symbolic
       link from the current directory to the real source location in order to
       see the annotated source, or copy the source code and load objects into
       the experiment.

       src { filename | function_name } [N | ADDR]
	      Same as source.

       disasm { filename | function_name } [N | ADDR]
	      Write  annotated disassembly of the given object file, or of the
	      object file containing  the  given  function.   Ambiguities  are
	      resolved in the same way as for the source command.

	      Prepend  the line with "##" if the metric value on a line equals
	      or exceeds a threshold percentage of the maximum value  of  that
	      metric.	This  makes  it	 easier	 for you to find the important
	      lines.  The threshold is set using  the  dthresh	command.   The
	      classes of commentary shown are set by the dcc command.

	      Search for the source file corresponding to the specified disas‐
	      sembly as described for the source command, and  interleave  the
	      the  disassembly	with the source and index lines.  If the func‐
	      tion includes code from an alternate source context,  insert  an
	      index  line  referring to the alternate context, followed by the
	      raw disassembly without compiler commentary.  If the source file
	      cannot  be  found,  show	the disassembly without the source and
	      without the compiler commentary.

       scc com_spec
	      Specify which classes of	compiler  commentary  are  shown  with
	      annotated	  source.   com_spec  is  a  colon-separated  list  of
	      classes. Each of the classes refers to specific  types  of  mes‐
	      sages.  The allowed classes are:
		   b[asic] — show basic messages from all classes
		   v[ersion] — show version messages
		   w[arn] — show warning messages
		   pa[rallel] — show parallelization messages
		   q[uery] — show questions from the compiler
		   l[oop] — show loop transformation messages
		   pi[pe] — show pipelining messages
		   i[nline] — show inlining messages
		   m[emops] — show messages about memory operations
		   f[e] — show front-end messages
		   co[degen] — show code generator messages
		   cf — show compile flags at the bottom of the source
		   all — show all messages
		   none — do not show messages
	      The classes "all" and "none" cannot be used with other classes.

	      For  compatibility,  the	threshold for flagging important lines
	      can be included in the list with any of the  classes,  including
	      "all" and "none".
		   t[hreshold]=nn
	      Flag  a  line  as	 important  if	it has a metric value which is
	      greater than nn percent of the largest value of that  metric  on
	      any line in the file.  The default value of nn is 75.

	      For example:

		   scc l:pi:t=50

	      means show loop transformation messages and pipelining messages,
	      and set the threshold to 50 percent.

	      If no scc command is given, use the default setting:

		   scc all

	      If com_spec is not specified, turn off compiler commentary.  The
	      scc command is normally used only in a .er.rc file.

       sthresh value
	      Set  the	threshold  for flagging important lines in the source.
	      Flag a line as important if  it  has  a  metric  value  that  is
	      greater  than  value percent of the largest value of that metric
	      on any line in the file.	The default value of value is 75.

       dcc com_spec
	      Specify which classes of	compiler  commentary  are  shown  with
	      annotated disassembly.  The com_spec specification for this com‐
	      mand can include any of the scc classes and the following	 addi‐
	      tional specifications:
		   h[ex]   —  show  the	 hexadecimal  representation  of  each
		   instruction
		   noh[ex] — do not show  the  hexadecimal  representation  of
		   each instruction
		   s[rc] — interleave source in disassembly (default)
		   as[rc] — interleave annotated source, with source-line met‐
		   rics, in disassembly
		   nos[rc] — do not interleave source in disassembly

	      If no dcc command is given, use the default setting:

		   dcc all:src

	      This command is normally used only in a .er.rc file.

       cc com_spec
	      Specify compiler-commentary for both source and disassembly

       dthresh value
	      Set the threshold for flagging important lines in the  disassem‐
	      bly.  Flag a line as important if it has a metric value which is
	      greater than value percent of the largest value of  that	metric
	      on any line in the file.	The default value of value is 75.

       setpath path_list
	      Set the path used to find source, object, etc. files.  path_list
	      is a colon-separated list of directories.	 If any directory  has
	      a	 colon character in it, it should be escaped with a backslash.
	      The special directory name, $expts, refers to the set of current
	      experiments,  in	the order in which they were loaded; it can be
	      abbreviated with a single $ character.

	      The default setting is: "$expts:.".  Use	the  compiled-in  full
	      pathname	if  a  file  cannot  be found by searching the current
	      path.

	      setpath with no argument means print the current path.

       addpath path_list
	      Append path_list to the current setpath settings.

       pathmap old_prefix new_prefix
	      If a file can not be  found  useing  the	path_list  as  set  by
	      addpath or setpath, one or more path remappings can be supplied.
	      Any pathname for a source file, object file,  or	shared	object
	      that  begins with the old_prefix has that prefix replaced by the
	      new_prefix, and the resulting path used to find the file.	  Mul‐
	      tiple  pathmap commands can be supplied, and they are each tried
	      until the file is found.

   Commands Controlling the Data Space List
       Data Space commands are applicable only to hardware counter experiments
       where  aggressive  backtracking was specified, and for objects in files
       that were compiled with -xhwcprof.  (Available  on  SPARC[R]  platforms
       for C or C++ only.)  See the compiler manual for further information.

       data_objects
	      Write the list of data objects with their metrics.

       data_single
	      name [N]
	      Write  the summary metrics panel for the named data object.  The
	      optional parameter N is needed for those cases where the	object
	      name is ambiguous.

       data_layout
	      Write  the  annotated  data  object layouts for all program data
	      objects with data-derived metric data,  sorted  by  the  current
	      data  sort  metric  values  for the structures as a whole.  Show
	      each aggregate data object with the total metrics attributed  to
	      it,  followed  by all of its elements in offset order, each with
	      their own metrics and an indicator of its size and location rel‐
	      ative to 32-byte blocks.

       data_metrics metric_spec
	      Set  the data-derived metrics. The metric_spec is defined in the
	      metrics section, except only the <flavor> "d", for data-derived,
	      can be used for dynamic metrics.

	      By  default,  set the data-derived metrics to match the function
	      list metrics whenever they are changed.	Set  the  data-derived
	      metrics corresponding to any visible exclusive or inclusive met‐
	      ric that has a data-derived  flavor,  with  <visibility>	corre‐
	      sponding to the logical or of the <visibility> setting for those
	      two.  Copy static metric settings to the	data-derived  metrics.
	      If the metric "name" is not in the list, it is appended to it.

	      If  metric_spec  is omitted, print the current data-derived met‐
	      rics setting.  A list of all the available <metric-name>	values
	      for  the	experiments  loaded can be obtained with the data_met‐
	      ric_list command.

	      If the metric_spec has any errors, it is ignored, and the	 data-
	      derived metrics are left unchanged.

       data_sort
	      Set the sort metric for data objects.  The prefix "d." is needed
	      for dynamic metrics, but can be omitted for static metrics.  The
	      data_sort	 metric	 must  be  either  a data-derived metric, or a
	      static metric.  If multiple metrics are specified, sort  by  the
	      first visible one that matches.

	      Whenever	metrics	 are set, either explicitly or by default, set
	      the data-derived sort metric based on the function  metrics:  if
	      sorting  is  by a dynamic metric, either inclusive or exclusive,
	      which has a corresponding data-derived flavor, sort by the  cor‐
	      responding data-derived metric; if sorting is is by an inclusive
	      or exclusive metric that does not have  a	 data-derived  flavor,
	      sort  by the first visible data-derived metric; if sorting is by
	      a static metric, sort by it.

   Commands Controlling the Memory Object Lists
       Memory Object commands are applicable only to hardware counter  experi‐
       ments  where  aggressive backtracking was specified, and for objects in
       files that were compiled with -xhwcprof.	 (Available on	SPARC[R]-based
       platforms  for  C  or  C++  only.)  See the compiler manual for further
       information.

       Memory Objects are components in the memory subsystem, such  as	cache-
       lines,  pages,  memory-banks,  etc.   The  object is determined from an
       index computed from the virtual and/or physical	address	 as  recorded.
       Memory objects are predefined for virtual and physical pages, for sizes
       of 8KB, 64KB, 512KB,  and  4  MB.   You	can  define  others  with  the
       mobj_define command.

       The following commands control the Memory Object Lists.

       memobj mobj_type
	      Write  the list of the memory objects of the given type with the
	      current metrics.	Metrics used and sorting are the same  as  for
	      the  Data	 Space	List.	The  name  mobj_type  can also be used
	      directly as the command.

       mobj_list
	      Write the list of known types of memory  objects,	 as  used  for
	      mobj_type in the memobj command.

       mobj_define mobj_type index_exp
	      Define  a	 new type of memory objects with a mapping of VA/PA to
	      the object given by the index_exp.  The syntax of the expression
	      is  described  under "Expression Grammar", below.	 The mobj_type
	      must not already be defined, and it cannot  match	 any  existing
	      command, or any Index Object type (see below). Its name is case-
	      insensitive, and must be entirely composed of alphanumeric char‐
	      acters  or the '_' character, and begin with an alphabetic char‐
	      acter. The  index_exp must be syntactically correct. If not,  an
	      error  is	 returned  and	the  definition	 is  ignored.	If the
	      index_exp contains any blanks, it must be surrounded  by	double
	      quote  (").   The	 <Unknown> memory object has index -1, and the
	      expression used to define a new  memory  object  should  support
	      recognizing  <Unknown>.	For  example, for VADDR-based objects,
	      the expression should be of the form:
				 VADDR>255?<expression>:-1
	      and for PADDR-based objects, the expression  should  be  of  the
	      form:
				  PADDR>0?<expression>:-1

   Commands Controlling the Index Object Lists
       Index  Object  commands	are  applicable	 to all experiments.  An Index
       Object is a class of objects that can be indexed by a formula  that  is
       computed from the header of a packet.  Index objects are predefined for
       Threads, CPUs, Samples, and Seconds.  You can be define others with the
       indxobj_define command.

       The following commands control the Index Object Lists.

       indxobj indxobj_type
	      Write  the  list of the index objects of the given type with the
	      current index object metrics.  Metrics used and sorting are  the
	      same  as	for the Function List, but containing Exlusive metrics
	      only.  The name indxobj_type can also be used  directly  as  the
	      command.

       indxobj_list
	      Write  the  list	of  known  types of index objects, as used for
	      indxobj_type in the indxobj command.

       indxobj_define indxobj_type index_exp
	      Define a new type of index objects with a mapping of packets  to
	      the object given by the index_exp.  The syntax of the expression
	      is   described   under   "Expression   Grammar",	 below.	   The
	      indxobj_type  must  not  already be defined, and it cannot match
	      any existing command, or any Memory Object type (see above). Its
	      name  is	case-insensitive,  and	must  be  entirely composed of
	      alphanumeric characters or the '_' character, and begin with  an
	      alphabetic  character. The  index_exp must be syntactically cor‐
	      rect. If not,  an	 error	is  returned  and  the	definition  is
	      ignored.	 If the index_exp contains any blanks, it must be sur‐
	      rounded by double quote (").

       indxobj_metrics metric_spec
	      Set the index-object metrics. The metric_spec is defined in  the
	      metrics  section,	 except	 only the <flavor> "e", for exclusive,
	      can be used for dynamic metrics.

	      By default, set the index-object metrics to match	 the  function
	      list  metrics  whenever  they  are  changed.   Set the exclusive
	      index-object metrics corresponding to any visible	 exclusive  or
	      inclusive metric, with <visibility> corresponding to the logical
	      or of the <visibility> setting for those two.  Copy static  met‐
	      ric  settings to the index-object metrics.  If the metric "name"
	      is not in the list, it is appended to it.

	      If metric_spec is omitted, print the current  index-object  met‐
	      rics  setting.  A list of all the available <metric-name> values
	      for the experiments loaded can be obtained  with	the  indx_met‐
	      ric_list command.

	      If the metric_spec has any errors, it is ignored, and the index-
	      object metrics are left unchanged.

       indxobj_sort
	      Set the sort metric  for	index-objects.	 The  prefix  "e."  is
	      needed  for  dynamic metrics, but can be omitted for static met‐
	      rics.  The data_sort metric must be either a  exclusive  metric,
	      or  a static metric.  If multiple metrics are specified, sort by
	      the first visible one that matches.

	      Whenever metrics are set, either explicitly or by	 default,  set
	      the  index-object	 sort metric based on the function metrics: if
	      sorting is by a dynamic metric, either inclusive	or  exclusive,
	      sort  by	the corresponding exclusive metric; if sorting is by a
	      static metric, sort by it.

   Commands for the OpenMP Index Objects
       OMP_preg
	      Print a list of the OpenMP  Parallel  Regions  executed  in  the
	      experiment,  with their metrics.	This command is available only
	      for experiments with OpenMP 3.0 Performance data.

       OMP_task
	      Print a list of the OpenMP Tasks	executed  in  the  experiment,
	      with  their metrics.  This command is available only for experi‐
	      ments with OpenMP 3.0 Performance data.

   Commands Controlling the Thread Analyzer Reports
       races  Write the report on any detected groups  of  data-races  in  the
	      experiment.   Data-race  reports are available only from experi‐
	      ments with data-race-detection data.

       rdetail [ race_id ]
	      Write detailed  information  on  the  specified  data-race.   If
	      race_id  is given as all, write the detailed information for all
	      data-races.  Data-race reports are available only	 from  experi‐
	      ments with data-race-detection data.

       rsummary [ race_id ]
	      Same as rdetail.

       deadlocks
	      Write  the  report  on any detected deadlocks in the experiment.
	      Deadlock reports are available only from experiments with	 dead‐
	      lock-detection data.

       ddetail [ deadlock_id ]
	      Write detailed information on the specified deadlocks.  If dead‐
	      lock_id is given as all, write the detailed information for  all
	      data-races.   Deadlock  reports  are available only from experi‐
	      ments with deadlock-detection data.

       dsummary [ deadlock_id ]
	      Same as ddetail.

   Commands Listing Experiments, Samples, Threads, and LWPs
       exp_list
	      Display the list of experiments that are loaded.	 Each  experi‐
	      ment  is listed with an index, which is used when selecting sam‐
	      ples, threads, or LWPs,  and  a  PID,  which  can	 be  used  for
	      advanced filtering.

       sample_list
	      Display the list of samples processed during the experiment(s).

       lwp_list
	      Display the list of LWPs processed during the experiment(s).

       thread_list
	      Display the list of threads processed during the experiment(s).

       cpu_list
	      Display the list of CPUs used during the experiment(s).

   Commands Controlling Filtering of Experiment Data
       There  are  two ways to specify filtering of experiment data, either by
       specifying a filter expression, which is evaluated for each data record
       to  determine whether or not the record should be included, or with the
       older commands to select experiments, samples, threads, CPUs, and  LWPs
       for filtering.

       The filtering by expression is controlled by the following command.

       filters filter_exp
	      filter_exp is an expression which evaluates as true for any data
	      record that should be  included,	and  false  for	 records  that
	      should not be included.

       The grammar of the expression in the filters command is described under
       "Expression Grammar", below.  If the expression contains any blanks, it
       must be surrounded by double quotes (").

       The  following  old-style  commands  select  the	 experiments, samples,
       threads, CPUs, and LWPs for which data is displayed for filtering.

       sample_select sample_spec
	      sample_spec is a sample list, as described below.

       lwp_select lwp_spec
	      lwp_spec is a LWP list, as described below.

       thread_select thread_spec
	      thread_spec is a thread list, as described below.

       cpu_select cpu_spec
	       cpu_spec is a CPU list, as described below.

       Each of the lists above can be a single number, a range of numbers  (n-
       m),  a  comma-separated	list  of  numbers  and ranges, or the explicit
       string "all".  Each list can optionally be preceded  by	an  experiment
       list  with  a  similar  format, separated from the list by a colon (:).
       Multiple lists can be concatenated, separated by a  plus	 sign.	 Lists
       must  not  contain spaces.  If no experiment list is included, the list
       applies to all experiments.

       Apply the experiment selection from any of the select commands  to  all
       four  select  targets  --  threads, LWPs, CPUs and samples. Retain each
       experiment in the experiment list, if a	selection  of  threads,	 LWPs,
       CPUs  or	 samples  exists;  if  no experiment is specified by the user,
       select all experiments.	Turn off selections for experiments not in the
       experiment list.

       Some examples:

	    thread_select 1
	      Select thread 1 from all experiments.

	    thread_select all:1
	      Selects thread 1 from all experiments.

	    thread_select all:1,3,5
	      Selects threads 1, 3, and 5 from all experiments.

	    thread_select 1,2:all
	      Select  all  threads  from  experiments  1  and  2, as listed by
	      exp_list.

	    thread_select 1:1+2:2
	      Select thread 1 from experiment 1 and thread 2  from  experiment
	      2.

   Commands Controlling Load Object Function Expand/Collapse
       object_list
	      Display  a  two-column  list showing the status and names of all
	      load objects.  Show the show/hide/api status in the first column
	      and the name in the second. Display a status of show if the load
	      object's functions are shown in the function list (expanded), or
	      hide  if	its functions are not shown in the function list (col‐
	      lapsed).	All functions for a collapsed  load-object  map	 to  a
	      single  entry  in the function list representing the entire load
	      object, or API-only if only  those  functions  representing  the
	      entry point into the load object are shown.

       object_show object1,object2,...
	      Set  all	named  load  objects to show all their functions.  The
	      names of the objects can be either full pathnames or  the	 base‐
	      name.   If the name contains a comma character, the name must be
	      surrounded by double quotes.  If the string  "all"  is  used  to
	      name the load object, functions are shown for all loadobjects

       object_hide object1,object2,...
	      Set  all	named  load  objects to hide all their functions.  The
	      names of the objects can be either full pathnames or  the	 base‐
	      name.   If the name contains a comma character, the name must be
	      surrounded by double quotes.  If the string  "all"  is  used  to
	      name the load object, functions are shown for all loadobjects

       object_api object1,object2,...
	      Set all named load objects to show all only the functions repre‐
	      senting entry points into the library.  The names of the objects
	      can  be either full pathnames or the basename.  If the name con‐
	      tains a comma character, the name must be surrounded  by	double
	      quotes.	If  the	 string "all" is used to name the load object,
	      functions are shown for all loadobjects

       objects_default
	      Set all load objects according  to  the  initial	defaults  from
	      .er.rc file processing.

       object_select object1,object2,...
	      Set  the	list of active load objects.  Functions from all named
	      load objects are shown; functions from all  others  are  hidden.
	      The  names  of  the  objects can be either full pathnames or the
	      basename.	 If the name contains a comma character, the name must
	      be surrounded by double quotes.

	      If  functions  from  a load object are shown, all functions that
	      have non-zero metrics are shown in  the  function	 list.	 If  a
	      functions	 from a load object are hidden, its functions are col‐
	      lapsed, and only a single line with metrics for the entire  load
	      object instead of its individual functions is shown.

	      By  default,  show  functions  from all load objects, except the
	      <Unknown> object..

   Commands That List Metrics
       metric_list
	      Display the currently selected function list metrics and a  list
	      of  metrics and keyword names that can be used to reference them
	      in other commands, such as sort.	The format of the metric  key‐
	      words  is described under metrics.  The available metrics depend
	      on the data collected.  See the collect(1) man page.

       cmetric_list
	      Display the currently selected caller-callee metrics and a  list
	      of  metrics  and	keyword	 names for the callers-callees report.
	      Display the list in the same way as the metric_list output,  but
	      include attributed metrics additionally.

       data_metric_list
	      Display  the  currently selected data-derived metrics and a list
	      of metrics and keyword names for all data-derived reports.  Dis‐
	      play  the	 list  in  the same way as the metric_list output, but
	      include only those metrics that have a data-derived flavor,  and
	      static metrics.

       indx_metric_list
	      Display  the  currently selected index object metrics and a list
	      of metrics and keyword names for all index object reports.  Dis‐
	      play  the	 list  in  the same way as the metric_list output, but
	      include only those metrics that have  a  exclusive  flavor,  and
	      static metrics.

   Commands Controlling the Output
       outfile filename
	      Close any open output file and open filename for subsequent out‐
	      put.  When opening filename, clear any pre-existing content.  If
	      filename is a minus sign (-), write output to stdout.
	      If  filename  is	a  pair	 of  minus signs (--), write output to
	      stderr.

       appendfile filename
	      Close any open output file and  open  filename,  preserving  any
	      pre-existing  content,  so that subsequent output is appended to
	      the end of the file. If filename does not exist, the functional‐
	      ity of appendfile is the same as for outfile.

       limit n
	      Limit  any  output to the first n entries of the report, where n
	      is an unsigned integer.

       name { long | short | mangled } [:{soname | nosoname }]
	      Use long or short form of C++  function  names.	If  soname  is
	      specified, append the shared-object name to the function name.

       viewmode { user | expert | machine }
	      Set the viewing mode to user, expert or machine.

	      For  Java experiments, user mode shows Java call stacks for Java
	      threads, and does not show housekeeping threads.	 The  function
	      list  includes  a function <JVM-System>, representing aggregated
	      time from non-Java threads.  When	 the  JVM  software  does  not
	      report  a Java call stack, time is reported against the function
	      <no Java callstack recorded>.  Expert mode shows Java call stack
	      for  Java	 threads  when your Java code is being executed, and a
	      machine call stack when JVM code is being executed or  when  the
	      JVM software does not report a Java call stack. It shows machine
	      call stacks for non-user-Java (housekeeping)  threads.   Machine
	      mode shows machine call stacks for all threads.

	      For  OpenMP  experiments,	 user  and  expert mode are identical.
	      They show master-thread call stacks and slave-thread call stacks
	      reconciled,  and	add  special functions, with names of the form
	      <OMP-*> when the OpenMP runtime  is  performing  certain	opera‐
	      tions.  See the collect(1) man page, or the Performance Analyzer
	      manual for more information.  Machine mode shows	machine	 call‐
	      stacks for all threads.

	      For all other experiments, all three modes show the same data.

   Commands That Print Other Information
       header [ exp_id ]
	      Write  descriptive  information  about the specified experiment.
	      exp_id is the numeric identifier of the experiment as  given  by
	      the  experiment_list  command.   If exp_id is all or is omitted,
	      write the headers of all experiments.   Following	 each  header,
	      print any errors or warnings.  Separate headers for each experi‐
	      ment by a line of dashes.

	      If the experiment directory contains a  file  named  notes,  the
	      contents of that file are prepended to the header information.

	      You are required to enter exp_id on the command line, but not in
	      a script or in interactive mode.

       objects
	      List the load objects with any error or  warning	messages  that
	      result from the use of the load object for performance analysis.

       overview [ exp_id ]
	      Write  the  sample  list for the specified experiment, with data
	      for each sample. exp_id is the numeric identifier of the experi‐
	      ment  as given by the experiment_list command.  If exp_id is all
	      or is omitted, write overviews for all experiments.

	      You are required to enter exp_id on the command line, but not in
	      a script or in interactive mode.

       statistics [ exp_id ]
	      Write  the  execution  statistics data for the specified experi‐
	      ment, aggregating data over the current sample  set.  exp_id  is
	      the numeric identifier of the experiment as given by the experi‐
	      ment_list command.  If exp_id is omitted, write the  sum	across
	      all  experiments,	 as  selected  by their samples.  If exp_id is
	      all, write the sum and the statistics for the  selected  samples
	      in each experiment.

	      You are required to enter exp_id on the command line, but not in
	      a script or in interactive mode.

       ifreq  Write the instruction-execution summary.	Instruction  frequency
	      reports  are  available  only  from experiments with count data.
	      (Available for SPARC systems only.)

   Default-setting Commands
       Defaults for many of the reports in the er_print utility and the er_src
       utility,	 as  well  as  the  displays  in the Analyzer, can be set in a
       resource file named .er.rc. Both the er_print utility and  the  Perfor‐
       mance Analyzer process a system-wide .er.rc file, then a .er.rc file in
       your home directory, if present, then a .er.rc  file   in  the  current
       directory,  if present.	Directives read from each file take precedence
       over directives read previously.

       Note:  Since the defaults for the Analyzer, the er_print	 utility,  and
	      the er_src utility are all set by a common .er.rc file, the out‐
	      put of the er_print utility is affected by saving changes in the
	      Analyzer's Set Data Preferences dialog box, or by using any edi‐
	      tor to change a .er.rc file.

       The Analyzer puts a message into its Errors/Warning Logs	 areas	naming
       the  user  .er.rc  files	 it  processed.	  The er_print utility and the
       er_src utility print a message to stderr naming those files.

       These files can contain scc, sthresh, dcc, dthresh,  setpath,  addpath,
       pathmap,	 name,	mobj_define, object_show, object_hide, object_api, and
       viewmode commands, as described above.  They can also contain the  fol‐
       lowing  commands,  which	 cannot	 be  used  on  the  command line or in
       scripts:

       dmetrics metric_spec
	      Specifies the default order and visibility of metrics.  Multiple
	      dmetrics	commands  can be given in any er.rc file, and are con‐
	      catenated.  dmetrics from the various files are concatenated  in
	      the order: current directory, your home directory, and system.

	      The  metric_spec	is  described  under the metrics command above
	      with the following additions:

	      The <visibility> can be "!" which means that no version  of  the
	      metric  is  visible.   This allows you to specify the order of a
	      metric without making it visible by default.

	      Two generic metric names can  be	specified.   "hwc"  means  any
	      hardware counter metric, and "any" means any metric at all.

	      For  all	metrics	 computed  from the experiments that have been
	      loaded, the concatenated list of all dmetrics is scanned	for  a
	      match.   The first matching entry determines both the visibility
	      and the ordering of the metrics in the  function	list  and  the
	      callers-callees list.

       dsort metric_spec
	      Specifies the metric to be used by default for sorting the func‐
	      tion list.  The first metric in  the  dsort  specification  that
	      matches any metric in the experiment(s) is used to determine the
	      sort metric, subject to the following conditions. If  the	 entry
	      in  the  dsort  metric_spec has a <visibility> of "!", the first
	      metric whose name matches is used, whether it is visible or not;
	      if  any other setting of <visibility> is used, the first visible
	      metric whose name matches is used.  Like dmetrics, dsort	speci‐
	      fications	 from the various .er.rc files are concatenated in the
	      order: current directory, your home directory, and system.

       en_desc option
	      Set the mode for reading	descendant  experiments	 according  to
	      option The allowed values of option are:

	      Value	Meaning

	      on	Show all experiments on descendant processes

	      off	Do not show any experiments on descendant processes

	      =<regex>	Show  those  experiments on descendant processes whose
			lineage or executable name match the  regular  expres‐
			sion.

	  If  any experiments that are loaded have descendants, and en_desc is
	  set to off, a message is printed from er_print and a popup is posted
	  from the Performance Analyzer.

   Default-setting Commands that only Affect the Performance Analyzer
       tabs tab_spec
	      Set  the default set of tabs to be visible in the Analyzer.  The
	      tabs are named by the er_print command that generates the corre‐
	      sponding	reports;  in  addition, mpi_timeline specifies the MPI
	      Timeline tab, mpi_chart specifies the MPI	 Chart	tab,  timeline
	      specifies	 the  Timeline	tab, and headers specifies the Experi‐
	      ments tab.  Only those tabs that are supported by	 the  data  in
	      the loaded experiments are shown.

       rtabs tab_spec
	      Set  the default set of tabs to be visible in the Analyzer, when
	      invoked with the tha command (as opposed	to  being  invoked  as
	      analyzer).

       tlmode tl_mode
	      Set  the display mode options for the Timeline tab. tl_mode is a
	      colon-separated list of options, which are described in the fol‐
	      lowing table.

	      Value	Meaning

	      lw[p]	Display events for LWPs

	      t[hread]	Display events for threads

	      c[pu]	Display events for CPUs

	      r[oot]	Align call stack at the root

	      le[af]	Align call stack at the leaf

	      d[epth]=nn
			Set  the  maximum  depth of the call stack that can be
			displayed

	  lwp, thread, and cpu are mutually exclusive, as are root  and	 leaf.
	  If  more  than  one mutually exclusive option is specified, only the
	  last one is used.

       tldata tl_data
	      Select the default data types shown in the Timeline. tl_data  is
	      a colon-separated list of types, which are listed in the follow‐
	      ing table.

	      Value	Meaning

	      sa[mple]	Display sample data

	      c[lock]	Display clock profiling data

	      hw[c]	Display hardware counter profiling  data

	      sy[nctrace]
			Display thread synchronization tracing data

	      mp[itrace]
			Display MPI tracing data

	      he[aptrace]
			Display heap tracing data

   Miscellaneous Commands
       mapfile load-object mapfilename
	      Write the map file for the given load object to mapfilename.  If
	      mapfilename  is  dash  (-), write the map file to stdout.	 Order
	      the mapfile produced using the metric currently set to sort  the
	      function list.

       procstats
	      Print the accumulated statistics from processing data.

       script script
	      Process commands from the named script.

       version
	      Print the current release version of er_print.

       quit   Exit  interactive	 mode.	If  used in a script, no more commands
	      from that script are processed.

       help   Print help information.

       # ...  Comment line; used in scripts or a .er.rc file.

   Expression Grammar
       A common grammar is used for an expression defining a  filter,  and  an
       expression used to compute a memory object index.

       The  grammar  specifies an expression as a combination of operators and
       operands.  For filters, if the expression evaluates to true, the packet
       is  included;  if  the  expression  evaluates  to  false, the packet is
       excluded.  For memory objects, the expression is evaluated to an	 index
       that defines the particular memory object referenced in the packet.

       Operands in an expression are either constants, or fields within a data
       record, including THRID, LWPID, CPUID,  STACK,  LEAF,  VIRTPC,  PHYSPC,
       VADDR, PADDR, DOBJ, TSTAMP, SAMPLE, EXPID, PID, or the name of a memory
       object.	Operand names are case-insensitive.

       VIRTPC, PHYSPC, VADDR, and PADDR are non-zero only when "+"  is	speci‐
       fied  for  Hardware-counter- or clock-profiling.	 Furthermore, VADDR is
       less than 256 when the real virtual address could  not  be  determined.
       PADDR  is  zero	if  VADDR  could  not be determined, or if the virtual
       address could not be mapped to a physical address.  Likewise, VIRTPC is
       zero  if	 backtracking failed, or was not requested, and PHYSPC is zero
       if either VIRTPC is zero, or the VIRTPC could not be mapped to a physi‐
       cal address.

       Operators include the usual logical operators and arithmetic (including
       shift) operators, in C notation, with C precedence rules, and an opera‐
       tor  for determining whether an element is in a set (IN) or whether any
       or all of a set of elements is contained in  a  set  (SOME  IN  or  IN,
       respectively).  If-then-else constructs are specified as in C, with the
       ? and : operators.  Parentheses should be used to ensure proper parsing
       of  all expressions.  On the er_print command-line, the expression can‐
       not be split across lines.  In scripts, or  on  the  command-line,  the
       expression must be inside double quotes if it contains any blanks.

       Filter  expressions evaluate to a boolean, true if the packet should be
       included, and false if it should not be included.   Thread,  TWP,  CPU,
       experiment-id,  process	pid, and sample filtering are based on a rela‐
       tional expression between the appropriate keyword and  an  integer,  or
       using the IN operator and a comma-separated list of integers.

       Time-filtering is used by specifying one or more relational expressions
       between TSTAMP and a time, given in integer nanoseconds from the	 start
       of the experiment whose packets are being processed.  Times for samples
       can be obtained from the overview command; Times in the	overview  com‐
       mand  are  given	 in  seconds, and must be converted to nanoseconds for
       time-filtering.	Times can also be obtained from the  Analyzer's	 Time‐
       line display.

       Function	 filtering can be based either on the leaf function, or on any
       function in the stack.  Filtering by leaf function is  specified	 by  a
       relational  expression between the LEAF keyword and an integer function
       id, or using the IN operator and the construct FNAME("<regex>"),	 where
       <regex> is a regular expression, as specified on the regex(5) man page.
       The entire name of the function, as given by  the  current  setting  of
       name, must match.

       Filtering  based	 on  any  function  in	the call stack is specified by
       determining if any function in the construct FNAME("<regex>") is in the
       array of functions represented by the keyword STACK:
	    (FNAME("myfunc") SOME IN STACK)

       Data  object  filtering is analogous to stack function filtering, using
       the DOBJ keyword and the construct DNAME("<regex>") enclosed in	paren‐
       theses.

       Memory  object  filtering  is specified by using the name of the memory
       object, as shown in the mobj_list command, and the integer index of the
       object,	or  the	 indices  of  a set of objects.	 (The <Unknown> memory
       object has index -1.)

       Data object filtering and memory object filtering are  meaningful  only
       for hardware counter packets with dataspace data; all other packets are
       excluded under such filtering.

       Direct filtering of virtual addresses or physical addresses  is	speci‐
       fied  by	 a  relational	expression  between  VADDR  or	PADDR, and the
       address.

       Memory object definitions (the mobj_define command) use	an  expression
       that  evaluates	to an integer index, using either the VADDR keyword or
       PADDR keyword.  They are applicable only to  hardware  counter  packets
       for  memory  counters and dataspace data.  The expression should return
       an integer, or -1 for the <Unknown> memory object.

COMPATIBILITY
       er_print works on experiments recorded with  earlier  versions  of  the
       tools  (Forte  Developer	 7  software  or later), but might not work on
       experiments recorded with future versions.  If invoked on such  experi‐
       ments,  a  warning  is  printed.	  Use the version of er_print from the
       release with which the experiment was  recorded.	  A  warning  is  also
       posted  when reading any experiment recorded with versions prior to Sun
       Studio 12 software, saying that the experiments will  not  be  readable
       with future releases.

SEE ALSO
       analyzer(1), collect(1), collector(1), dbx(1), er_archive(1), er_cp(1),
       er_export(1), er_mv(1), er_rm(1), er_src(1),  libcollector(3),  tha(1),
       regex(5), and the Performance Analyzer manual.

				  March 2009			   er_print(1)
[top]

List of man pages available for OpenIndiana

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