summaryrefslogtreecommitdiffstats
path: root/tapsets/contextinfo/contextinfo.txt
blob: 275f1b6d79cd7fff6aac69758bcaa657ae944997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
* Application name: probe context information ariables
* Contact: fche
* Motivation: let probes know where/how they were fired; introspective
              probe handlers
* Background: discussions on mailing lists
* Target software: various
* Type of description: tapset variables
* Interesting probe points: n/a
* Interesting values:

  $pp_alias: string: the string specification of the probe point, as found
                     in the original .stp file, before alias and other
                     expansion
  $pp: string: representation of this probe point, after alias and wildcard
               expansion
  $pp_function: string: source function (if available)
  $pp_srcfile: string: source file name (if available)
  $pp_srcline: number: line number in source file (if available)

  $function[pc]: string: function name containing given address
  $module[pc]: string: kernel module name containing given address
  $address[sym]: number: base address of given function symbol

  $pc: number: PC snapshot at invocation
  $stack[depth]: number: PC of caller at given depth, if available

* Dependencies:

  Debug-info files

* Restrictions:

  The $pp series of variables are computed at translation time, and thus
  are only applicable to those probes that have related debug-info points.

  $pc should be directly available.

  The $function series of read-only pseudo-arrays are calculated at
  run time, from symbol table information passed in some way.
  $stack[0] might take some probing in the registers, or (eek!) on the
  target stack frame.  Conservatively returning 0 instead may be okay.

* Data collection:

  Several of the variables are translation-time constants, so these don't
  have run-time collection needs.

  For a kernel/module probe, $function[] could be computed from the kallsyms
  lookup functions.  Alternately, the translator could emit a copy of the
  target symbol table into the probe C code, which $function[] could
  search.  The $stack[] elements would be served by the runtime on a
  best-effort basis.

* Data presentation:

  n/a: variables are simple

* Competition:

  unknown

* Cross-references:

  http://sources.redhat.com/ml/systemtap/2005-q2/msg00395.html
  http://sources.redhat.com/ml/systemtap/2005-q2/msg00281.html

* Associated files: