6 #include <lttng/lttng.h>
8 static enum lttng_domain_type
get_domain_type(const char *domain
)
10 if (!strcmp("UST", domain
)) {
11 return LTTNG_DOMAIN_UST
;
12 } else if (!strcmp("KERNEL", domain
)) {
13 return LTTNG_DOMAIN_KERNEL
;
15 printf("Domain not supported\n");
20 static int process_event(struct lttng_event
*event
)
24 /* Exclusion related lttng-ctl call */
25 ret
= lttng_event_get_exclusion_name_count(event
);
32 for (int i
= 0; i
< count
; i
++) {
34 ret
= lttng_event_get_exclusion_name(event
, i
, &name
);
39 printf("exclusion name: %s\n", name
);
43 /* Filet expression related lttng-ctl call */
44 const char *filter_str
;
45 ret
= lttng_event_get_filter_expression(event
, &filter_str
);
51 printf("filter expression: %s\n", filter_str
);
56 int main(int argc
, char **argv
)
62 printf("missing parameters, session name, channel name, domain type\n");
66 const char *session_name
= argv
[1];
67 const char *channel_name
= argv
[2];
68 const char *domain_str
= argv
[3];
70 /* Domain related variables */
71 enum lttng_domain_type domain_type
= LTTNG_DOMAIN_NONE
;
72 struct lttng_domain
*domains
= NULL
;
73 struct lttng_domain domain
;
74 int domain_index
= -1;
76 /* Channel related variables */
77 struct lttng_channel
*channels
= NULL
;
78 int channel_index
= -1;
80 /* Event related variables */
81 struct lttng_event
*events
= NULL
;
84 struct lttng_handle
*handle
= NULL
;
86 /* Find the domain we are interested in */
87 domain_type
= get_domain_type(domain_str
);
88 ret
= lttng_list_domains(session_name
, &domains
);
89 for (int i
= 0; i
< ret
; i
++) {
90 if (domains
[i
].type
== domain_type
) {
95 if (domain_index
< 0) {
96 printf("domain not found for session %s\n", session_name
);
103 handle
= lttng_create_handle(session_name
, &domains
[domain_index
]);
105 /* Find the channel we are interested in */
106 ret
= lttng_list_channels(handle
, &channels
);
107 for (int i
= 0; i
< ret
; i
++) {
108 if (!strcmp(channels
[i
].name
, channel_name
)) {
113 if (channel_index
< 0) {
114 printf("channel not found for session %s\n", session_name
);
120 ret
= lttng_list_events(handle
, channel_name
, &events
);
122 printf("No events found for channel %s in session %s\n", channel_name
, session_name
);
125 for (int i
= 0; i
< ret
; i
++) {
126 ret
= process_event(&events
[i
]);
128 printf("Error while processing event \n");
139 lttng_destroy_handle(handle
);