1702a9c6e6fcf1101f9e8e29fc92843e3cc85e2a
8 * For a profile to be intelligible to a human user, it is necessary
9 * to map code-addresses into source-code information. Source-code
10 * information can be any combination of: (i) function-name, (ii)
11 * source file-name, and (iii) source line number.
13 * The symbol table is used to map addresses into source-code
20 * Symbol-entry. For each external in the specified file we gather
21 * its address, the number of calls and compute its share of cpu time.
27 * In the symbol-table, fields ADDR and FUNC_NAME are guaranteed
28 * to contain valid information. FILE may be 0, if unknown and
29 * LINE_NUM maybe 0 if unknown.
31 bfd_vma addr
; /* address of entry point */
32 bfd_vma end_addr
; /* end-address */
33 const char *name
; /* name of function this sym is from */
34 Source_File
*file
; /* source file symbol comes from */
35 int line_num
; /* source line number */
36 unsigned int is_func
: 1, /* is this a function entry point? */
37 is_static
: 1, /* is this a local (static) symbol? */
38 is_bb_head
: 1; /* is this the head of a basic-blk? */
39 int ncalls
; /* how many times executed */
40 struct sym
*next
; /* for building chains of syms */
42 /* profile-specific information: */
44 /* histogram specific info: */
46 double time
; /* (weighted) ticks in this routine */
47 bfd_vma scaled_addr
; /* scaled entry point */
50 /* call-graph specific info: */
52 int self_calls
; /* how many calls to self */
53 double child_time
; /* cumulative ticks in children */
54 int index
; /* index in the graph list */
55 int top_order
; /* graph call chain top-sort order */
56 bool print_flag
; /* should this be printed? */
58 double fract
; /* what % of time propagates */
59 double self
; /* how much self time propagates */
60 double child
; /* how much child time propagates */
63 int num
; /* internal number of cycle on */
64 struct sym
*head
; /* head of cycle */
65 struct sym
*next
; /* next member of cycle */
67 struct arc
*parents
; /* list of caller arcs */
68 struct arc
*children
; /* list of callee arcs */
73 * Symbol-tables are always assumed to be sorted in increasing order
77 int len
; /* # of symbols in this table */
78 Sym
*base
; /* first element in symbol table */
79 Sym
*limit
; /* limit = base + len */
82 extern Sym_Table symtab
; /* the symbol table */
84 extern void sym_init
PARAMS((Sym
*sym
));
85 extern void symtab_finalize
PARAMS((Sym_Table
*symtab
));
86 extern Sym
*sym_lookup
PARAMS((Sym_Table
*symtab
, bfd_vma address
));
This page took 0.030244 seconds and 4 git commands to generate.