diff options
Diffstat (limited to 'tools/perf/util/probe-finder.h')
-rw-r--r-- | tools/perf/util/probe-finder.h | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/tools/perf/util/probe-finder.h b/tools/perf/util/probe-finder.h index 972b386116f1..d1a651793ba6 100644 --- a/tools/perf/util/probe-finder.h +++ b/tools/perf/util/probe-finder.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _PROBE_FINDER_H | 1 | #ifndef _PROBE_FINDER_H |
2 | #define _PROBE_FINDER_H | 2 | #define _PROBE_FINDER_H |
3 | 3 | ||
4 | #include <stdbool.h> | ||
4 | #include "util.h" | 5 | #include "util.h" |
5 | 6 | ||
6 | #define MAX_PATH_LEN 256 | 7 | #define MAX_PATH_LEN 256 |
@@ -20,6 +21,7 @@ struct probe_point { | |||
20 | /* Inputs */ | 21 | /* Inputs */ |
21 | char *file; /* File name */ | 22 | char *file; /* File name */ |
22 | int line; /* Line number */ | 23 | int line; /* Line number */ |
24 | char *lazy_line; /* Lazy line pattern */ | ||
23 | 25 | ||
24 | char *function; /* Function name */ | 26 | char *function; /* Function name */ |
25 | int offset; /* Offset bytes */ | 27 | int offset; /* Offset bytes */ |
@@ -46,53 +48,46 @@ struct line_range { | |||
46 | char *function; /* Function name */ | 48 | char *function; /* Function name */ |
47 | unsigned int start; /* Start line number */ | 49 | unsigned int start; /* Start line number */ |
48 | unsigned int end; /* End line number */ | 50 | unsigned int end; /* End line number */ |
49 | unsigned int offset; /* Start line offset */ | 51 | int offset; /* Start line offset */ |
50 | char *path; /* Real path name */ | 52 | char *path; /* Real path name */ |
51 | struct list_head line_list; /* Visible lines */ | 53 | struct list_head line_list; /* Visible lines */ |
52 | }; | 54 | }; |
53 | 55 | ||
54 | #ifndef NO_LIBDWARF | 56 | #ifndef NO_DWARF_SUPPORT |
55 | extern int find_probepoint(int fd, struct probe_point *pp); | 57 | extern int find_probe_point(int fd, struct probe_point *pp); |
56 | extern int find_line_range(int fd, struct line_range *lr); | 58 | extern int find_line_range(int fd, struct line_range *lr); |
57 | 59 | ||
58 | /* Workaround for undefined _MIPS_SZLONG bug in libdwarf.h: */ | ||
59 | #ifndef _MIPS_SZLONG | ||
60 | # define _MIPS_SZLONG 0 | ||
61 | #endif | ||
62 | |||
63 | #include <dwarf.h> | 60 | #include <dwarf.h> |
64 | #include <libdwarf.h> | 61 | #include <libdw.h> |
65 | 62 | ||
66 | struct probe_finder { | 63 | struct probe_finder { |
67 | struct probe_point *pp; /* Target probe point */ | 64 | struct probe_point *pp; /* Target probe point */ |
68 | 65 | ||
69 | /* For function searching */ | 66 | /* For function searching */ |
70 | Dwarf_Addr addr; /* Address */ | 67 | Dwarf_Addr addr; /* Address */ |
71 | Dwarf_Unsigned fno; /* File number */ | 68 | const char *fname; /* File name */ |
72 | Dwarf_Unsigned lno; /* Line number */ | 69 | int lno; /* Line number */ |
73 | Dwarf_Off inl_offs; /* Inline offset */ | 70 | Dwarf_Die cu_die; /* Current CU */ |
74 | Dwarf_Die cu_die; /* Current CU */ | ||
75 | 71 | ||
76 | /* For variable searching */ | 72 | /* For variable searching */ |
77 | Dwarf_Addr cu_base; /* Current CU base address */ | 73 | Dwarf_Op *fb_ops; /* Frame base attribute */ |
78 | Dwarf_Locdesc fbloc; /* Location of Current Frame Base */ | 74 | Dwarf_Addr cu_base; /* Current CU base address */ |
79 | const char *var; /* Current variable name */ | 75 | const char *var; /* Current variable name */ |
80 | char *buf; /* Current output buffer */ | 76 | char *buf; /* Current output buffer */ |
81 | int len; /* Length of output buffer */ | 77 | int len; /* Length of output buffer */ |
78 | struct list_head lcache; /* Line cache for lazy match */ | ||
82 | }; | 79 | }; |
83 | 80 | ||
84 | struct line_finder { | 81 | struct line_finder { |
85 | struct line_range *lr; /* Target line range */ | 82 | struct line_range *lr; /* Target line range */ |
86 | 83 | ||
87 | Dwarf_Unsigned fno; /* File number */ | 84 | const char *fname; /* File name */ |
88 | Dwarf_Unsigned lno_s; /* Start line number */ | 85 | int lno_s; /* Start line number */ |
89 | Dwarf_Unsigned lno_e; /* End line number */ | 86 | int lno_e; /* End line number */ |
90 | Dwarf_Addr addr_s; /* Start address */ | 87 | Dwarf_Die cu_die; /* Current CU */ |
91 | Dwarf_Addr addr_e; /* End address */ | ||
92 | Dwarf_Die cu_die; /* Current CU */ | ||
93 | int found; | 88 | int found; |
94 | }; | 89 | }; |
95 | 90 | ||
96 | #endif /* NO_LIBDWARF */ | 91 | #endif /* NO_DWARF_SUPPORT */ |
97 | 92 | ||
98 | #endif /*_PROBE_FINDER_H */ | 93 | #endif /*_PROBE_FINDER_H */ |