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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that: (1) source distributions retain this entire copyright
* notice and comment, and (2) distributions including binaries display
* the following acknowledgement: ``This product includes software
* developed by the University of California, Berkeley and its contributors''
* in the documentation or other materials provided with the distribution
* and in all advertising materials mentioning features or use of this
* software. Neither the name of the University nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* @(#)gprof.h 5.9 (Berkeley) 6/1/90
*/
#ifndef gprof_h
#define gprof_h
/* Include the BFD sysdep.h file. */
#include "sysdep.h"
#include "bfd.h"
/* Undefine the BFD PACKAGE and VERSION macros before including the
gprof config.h file. */
#undef PACKAGE
#undef VERSION
#include "gconfig.h"
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
#ifndef MAX
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
/* AIX defines hz as a macro. */
#undef hz
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
#define A_OUTNAME "a.out" /* default core filename */
#define GMONNAME "gmon.out" /* default profile filename */
#define GMONSUM "gmon.sum" /* profile summary filename */
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
#ifdef ENABLE_NLS
/* Undefine BFD's `_' macro - it uses dgetext() and we want to use gettext(). */
#undef _
#define _(String) gettext (String)
#endif
#include "bin-bugs.h"
#define STYLE_FLAT_PROFILE (1<<0)
#define STYLE_CALL_GRAPH (1<<1)
#define STYLE_SUMMARY_FILE (1<<2)
#define STYLE_EXEC_COUNTS (1<<3)
#define STYLE_ANNOTATED_SOURCE (1<<4)
#define STYLE_GMON_INFO (1<<5)
#define STYLE_FUNCTION_ORDER (1<<6)
#define STYLE_FILE_ORDER (1<<7)
#define ANYDEBUG (1<<0) /* 1 */
#define DFNDEBUG (1<<1) /* 2 */
#define CYCLEDEBUG (1<<2) /* 4 */
#define ARCDEBUG (1<<3) /* 8 */
#define TALLYDEBUG (1<<4) /* 16 */
#define TIMEDEBUG (1<<5) /* 32 */
#define SAMPLEDEBUG (1<<6) /* 64 */
#define AOUTDEBUG (1<<7) /* 128 */
#define CALLDEBUG (1<<8) /* 256 */
#define LOOKUPDEBUG (1<<9) /* 512 */
#define PROPDEBUG (1<<10) /* 1024 */
#define BBDEBUG (1<<11) /* 2048 */
#define IDDEBUG (1<<12) /* 4096 */
#define SRCDEBUG (1<<13) /* 8192 */
#ifdef DEBUG
#define DBG(l,s) if (debug_level & (l)) {s;}
#else
#define DBG(l,s)
#endif
typedef enum
{
FF_AUTO = 0, FF_MAGIC, FF_BSD, FF_BSD44, FF_PROF
}
File_Format;
typedef unsigned char UNIT[2]; /* unit of profiling */
extern const char *whoami; /* command-name, for error messages */
extern const char *function_mapping_file; /* file mapping functions to files */
extern const char *a_out_name; /* core filename */
extern long hz; /* ticks per second */
/*
* Command-line options:
*/
extern int debug_level; /* debug level */
extern int output_style;
extern int output_width; /* controls column width in index */
extern boolean bsd_style_output; /* as opposed to FSF style output */
extern boolean demangle; /* demangle symbol names? */
extern boolean discard_underscores; /* discard leading underscores? */
extern boolean ignore_direct_calls; /* don't count direct calls */
extern boolean ignore_static_funcs; /* suppress static functions */
extern boolean ignore_zeros; /* ignore unused symbols/files */
extern boolean line_granularity; /* function or line granularity? */
extern boolean print_descriptions; /* output profile description */
extern boolean print_path; /* print path or just filename? */
extern boolean ignore_non_functions; /* Ignore non-function symbols. */
extern File_Format file_format; /* requested file format */
extern boolean first_output; /* no output so far? */
extern void done PARAMS ((int status)) ATTRIBUTE_NORETURN;
#endif /* gprof_h */
|