tnfdump man page on SunOS

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

tnfdump(1)			 User Commands			    tnfdump(1)

NAME
       tnfdump - convert binary TNF file to ASCII

SYNOPSIS
       tnfdump [-r] [-x] tnf_file...

DESCRIPTION
       The  tnfdump  utility  converts the specified binary TNF trace files to
       ASCII. The ASCII output can be used to  do  performance	analysis.  The
       default mode (without the -r option) prints all the event records (that
       were generated by TNF_PROBE(3TNF)) and  the  event  descriptor  records
       only. It also orders the events by time.

OPTIONS
       The following option is supported:

       -r	Does a raw conversion of TNF to ASCII. The output is a literal
		transalation of the binary  TNF	 file  and  includes  all  the
		records in the file. This output is  useful only if you have a
		good understanding of TNF. A sample output is listed in	 EXAM‐
		PLES below.

       -x	Prints	all  TNF  unsigned type argument values in hexadecimal
		format instead of decimal format.

RETURN VALUES
       tnfdump returns 0 on succcessful exit.

EXAMPLES
       Example 1: Converting a file into ASCII

       To convert the file /tmp/trace-2130 into ASCII, use the tnfdump command
       and the name of the binary trace file. Be aware that the tnfdump output
       goes to stdout by default.

       example% tnfdump /tmp/trace-2130

       probe  tnf_name: "inloop" tnf_string: "keys cookie main loop;\
	    file cookie2.c;line 50;sunw%debug in the loop"
       probe	  tnf_name: "end" tnf_string: "keys cookie main end;\
	    file cookie2.c;line 41;sunw%debug exiting program"
       ------------- ----------- ---- ------  --- ---------- ----------------
       Elapsed (ms)  Delta (ms)	  PID  LWPID  TID  CPU Probe	Data/
						     Name    Description . . .
       ------------- ----------- ---- ------  --- ---------- ----------------
	  0.000000     0.000000	  8792	 1     0  - inloop  loop_count: 0
							    total_iterations: 0
	  0.339000     0.339000	  8792	 1     0  - inloop  loop_count: 1
							    total_iterations: 1
	  0.350500     0.011500	  8792	 1     0  - inloop  loop_count: 2
							    total_iterations: 2
	  0.359500     0.009000	  8792	 1     0  - inloop  loop_count: 3
							    total_iterations: 3
	  0.369500     0.010000	  8792	 1     0  - inloop  loop_count: 4
							    total_iterations: 4
       7775.969500  7775.600000	  8792	 1     0  - inloop  loop_count: 0
							    total_iterations: 5
       7776.016000     0.046500	  8792	 1     0  - inloop  loop_count: 1
							    total_iterations: 6
       7776.025000     0.009000	  8792	 1     0  - inloop  loop_count: 2
							    total_iterations: 7
       7776.034000     0.009000	  8792	 1     0  - inloop  loop_count: 3
							    total_iterations: 8
       7776.043000     0.009000	  8792	 1     0  - inloop  loop_count: 4
							    total_iterations: 9
       7776.052000     0.009000	  8792	 1     0  - inloop  loop_count: 5
							    total_iterations: 10
       7776.061000     0.009000	  8792	 1     0  - inloop  loop_count: 6
							    total_iterations: 11
       9475.979500  1699.918500	  8792	 1     0  - end	    node_struct:
							     { type: node_tnf
							  cur_sum: 9 max_cnt: 12 }

       All probes that are encountered during execution have a description  of
       it  printed  out. The description is one per line prefixed by  the key‐
       word 'probe'. The name of the probe is in double quotes after the  key‐
       word  'tnf_name'.  The  description  of	this probe is in double quotes
       after the keyword 'tnf_string'.

       A heading is printed after  all	the  description  of  the  probes  are
       printed. The first column gives the elapsed time in milli-seconds since
       the first event. The second column gives the elapsed time in milli-sec‐
       onds  since  the	 previous event. The next four columns are the process
       id, lwp id, thread id, and cpu number. The next column is the  name  of
       the  probe  that generated this event. This can be matched to the probe
       description explained above. The last column is the data that the event
       contains,  formatted  as arg_name_n (see TNF_PROBE(3TNF)) followed by a
       colon and the value of that argument. The format of the	value  depends
       on its type. tnf_opaque arguments are printed in hexadecimal. All other
       integers are printed in decimal. Strings are printed in	double	quotes
       and  user-defined records are enclosed in braces `{ }'. The first field
       of   a	user   defined	 record	  indicates   its   TNF	  type	  (see
       TNF_DECLARE_RECORD(3TNF)).  The	rest  of the fields are the members of
       the record.

       A `-' in any column indicates that there is no data for that particular
       column.

       Example 2: To do a raw conversion of a file into ASCII

       To do a raw conversion of the file /tmp/trace-4000 into ASCII, use:

       example% tnfdump -r /tmp/trace-4000

       The output will look like the following:

       0x10e00	 : {
			tnf_tag 0x109c0	   tnf_block_header
		     generation 1
		    bytes_valid 320
			 A_lock 0
			 B_lock 0
		     next_block 0x0
	       }
       0x10e10	 : {
			tnf_tag 0x10010	   probe1
		    tnf_tag_arg 0x10e24	   <tnf_sched_rec>
		     time_delta 128
		     test_ulong 4294967295
		      test_long -1
	       }
       0x10e24	 : {
			tnf_tag 0x10cf4	   tnf_sched_rec
			    tid 0
			  lwpid 1
			    pid 13568
		      time_base 277077875828500
	       }
       0x10e3c	 : {
			tnf_tag 0x11010	   probe2
		    tnf_tag_arg 0x10e24	   <tnf_sched_rec>
		     time_delta 735500
		       test_str 0x10e48	   "string1"
	       }
       0x10e48	 : {
			tnf_tag 0x1072c	   tnf_string
		  tnf_self_size 16
			  chars "string1"
	       }
       0x10e58	 : {
			tnf_tag 0x110ec	   probe3
		    tnf_tag_arg 0x10e24	   <tnf_sched_rec>
		     time_delta 868000
		 test_ulonglong 18446744073709551615
		  test_longlong -1
		     test_float 3.142857
	       }
       ...
       ...
       ...
       0x110ec	 : {
			tnf_tag 0x10030	   tnf_probe_type
		   tnf_tag_code 42
		       tnf_name 0x1110c	   "probe3"
		 tnf_properties 0x1111c	   <tnf_properties>
		 tnf_slot_types 0x11130	   <tnf_slot_types>
		  tnf_type_size 32
		 tnf_slot_names 0x111c4	   <tnf_slot_names>
		     tnf_string 0x11268	   "keys targdebug main;\
						file targdebug.c;line 61;"
	       }
       0x1110c	 : {
			tnf_tag 0x10068	   tnf_name
		  tnf_self_size 16
			  chars "probe3"
	       }
       0x1111c	 : {
			tnf_tag 0x100b4	   tnf_properties
		  tnf_self_size 20
			      0 0x101a0	   tnf_tagged
			      1 0x101c4	   tnf_struct
			      2 0x10b84	   tnf_tag_arg
	       }
       0x11130	 : {
			tnf_tag 0x10210	   tnf_slot_types
		  tnf_self_size 28
			      0 0x10bd0	   tnf_probe_event
			      1 0x10c20	   tnf_time_delta
			      2 0x1114c	   tnf_uint64
			      3 0x10d54	   tnf_int64
			      4 0x11188	   tnf_float32
	       }

       The  first  number  is  the  file  offset  of the record. The record is
       enclosed in braces `{ }'. The first column in a record is the slot name
       (for  records whose fields do not have names, it is the type name). The
       second column in the record is the value of that slot if it is a scalar
       (only  scalars  that are of type tnf_opaque are printed in hex), or the
       offset of the record if it is a reference to another record.

       The third column in a record is optional. It does not exist for	scalar
       slots of records. If it exists, the third column is a type name with or
       without angle brackets, or a string in double quotes.  Unadorned	 names
       indicate	 a reference to the named metatag record (that is, a reference
       to a record with that name in the tnf_name field). Type names in angled
       brackets	 indicate  a reference to a record that is an instance of that
       type (that is, a reference to a record with that name  in  the  tnf_tag
       field).	The content of strings are printed out in double quotes at the
       reference site.

       Records that are arrays have their array	 elements  follow  the	header
       slots,  and  are	 numbered 0, 1, 2, and so on, except strings where the
       string is written as the 'chars' (pseudo-name) slot.

       Records that are events (generated by   TNF_PROBE(3TNF))	 will  have  a
       slot  name of tnf_tag_arg as their second field which is a reference to
       the schedule record. Schedule records describe more  information	 about
       the  event  like	 the  thread-id,  process-id,  and the	time_base. The
       time_delta of an event can be added to the time_base  of	 the  schedule
       record  that  the event references, to give an absolute time. This time
       is expressed as nanoseconds since some arbitrary time in the past  (see
       gethrtime(3C)).

       Example 3: Printing TNF unsigned arguments in hexadecimal

       To   print   TNF	  unsigned  arguments  in  hexadecimal	for  the  file
       /tmp/trace-2192, use:

       example% tnfdump -x /tmp/trace-2192

       The output will look like the following:

       probe	   tnf_name: "start" tnf_string: "keys cookie main;
       file test17.c;line 20;sunw%debug starting main"
       probe	   tnf_name: "inloop" tnf_string: "keys cookie main
       loop;file test17.c;line 41;sunw%debug in the loop"
       probe	   tnf_name: "final" tnf_string: "keys cookie main
       final;file test17.c;line 32;sunw%debug in the final"
       ------------  -----------  ---- ----- --- --------- ---------------------
	   Elapsed	   Delta  PID  LWPID TID CPU Probe  Data/Description ...
	    (ms)	    (ms)		   Name
       ------------  -----------  ---- ----- --- --------- ---------------------
	   0.000000	0.000000  6280	 1    1	 - start
	2455.211311  2455.211311  6280	 1    1	 - inloop  loop_count: 0x0
						       total_iterations: 0x0
	2455.215768	0.004457  6280	 1    1	 - inloop  loop_count: 0x1
						       total_iterations: 0x1
	2455.217041	0.001273  6280	 1    1	 - inloop  loop_count: 0x2
						       total_iterations: 0x2
	2455.218285	0.001244  6280	 1    1	 - inloop  loop_count: 0x3
						       total_iterations: 0x3
	2455.219600	0.001315  6280	 1    1	 - inloop  loop_count: 0x4
						       total_iterations: 0x4
	4058.815125  1603.595525  6280	 1    1	 - inloop  loop_count: 0x0
						       total_iterations: 0x5
	4058.818699	0.003574  6280	 1    1	 - inloop  loop_count: 0x1
						       total_iterations: 0x6
	4058.819931	0.001232  6280	 1    1	 - inloop  loop_count: 0x2
						       total_iterations: 0x7
	4058.821264	0.001333  6280	 1    1	 - inloop  loop_count: 0x3
						       total_iterations: 0x8
	4058.822520	0.001256  6280	 1    1	 - inloop  loop_count: 0x4
						       total_iterations: 0x9
	4058.823781	0.001261  6280	 1    1	 - inloop  loop_count: 0x5
						       total_iterations: 0xa
	4058.825037	0.001256  6280	 1    1	 - inloop  loop_count: 0x6
						       total_iterations: 0xb
       13896.655450  9837.830413  6280	 1    1	 - final   loop_count16: 0x258
						       total_iterations8: 0xb0
       ::
       ::
       ::

       Notice that the loop_count and the total_iterations  are	 TNF  unsigned
       arguments.  Their  values  are printed in hexadecimal when requested by
       option -x.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │SUNWtnfd			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       prex(1),	 gethrtime(3C),	  TNF_DECLARE_RECORD(3TNF),   TNF_PROBE(3TNF),
       tnf_process_disable(3TNF), attributes(5)

SunOS 5.10			  22 Jan 2001			    tnfdump(1)
[top]

List of man pages available for SunOS

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