X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Flist_triggers.c;h=10f76e843986fd99c1bb1e50073eedb5cea2d7bf;hb=4f7da553ae57a6c947da2b9668c06418b2d50e99;hp=7c8bd7f883f6bd304656958a81ec570c31ebf230;hpb=7c2fae7c05b6eb686317f9c443366f046f0a2757;p=lttng-tools.git diff --git a/src/bin/lttng/commands/list_triggers.c b/src/bin/lttng/commands/list_triggers.c index 7c8bd7f88..10f76e843 100644 --- a/src/bin/lttng/commands/list_triggers.c +++ b/src/bin/lttng/commands/list_triggers.c @@ -18,8 +18,8 @@ #include "lttng/condition/event-rule-matches-internal.h" /* For lttng_domain_type_str(). */ #include "lttng/domain-internal.h" -/* For lttng_event_rule_syscall_emission_site_str() */ -#include "lttng/event-rule/syscall-internal.h" +/* For lttng_event_rule_kernel_syscall_emission_site_str() */ +#include "lttng/event-rule/kernel-syscall-internal.h" #include "../loglevel.h" #include @@ -159,7 +159,7 @@ void print_event_rule_tracepoint(const struct lttng_event_rule *event_rule) unsigned int exclusions_count; int i; - event_rule_status = lttng_event_rule_tracepoint_get_pattern( + event_rule_status = lttng_event_rule_tracepoint_get_name_pattern( event_rule, &pattern); assert(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK); @@ -214,7 +214,7 @@ void print_event_rule_tracepoint(const struct lttng_event_rule *event_rule) assert(event_rule_status == LTTNG_EVENT_RULE_STATUS_UNSET); } - event_rule_status = lttng_event_rule_tracepoint_get_exclusions_count( + event_rule_status = lttng_event_rule_tracepoint_get_name_pattern_exclusion_count( event_rule, &exclusions_count); assert(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK); if (exclusions_count > 0) { @@ -222,7 +222,7 @@ void print_event_rule_tracepoint(const struct lttng_event_rule *event_rule) for (i = 0; i < exclusions_count; i++) { const char *exclusion; - event_rule_status = lttng_event_rule_tracepoint_get_exclusion_at_index( + event_rule_status = lttng_event_rule_tracepoint_get_name_pattern_exclusion_at_index( event_rule, i, &exclusion); assert(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK); @@ -389,22 +389,22 @@ void print_event_rule_syscall(const struct lttng_event_rule *event_rule) { const char *pattern, *filter; enum lttng_event_rule_status event_rule_status; - enum lttng_event_rule_syscall_emission_site_type emission_site_type; + enum lttng_event_rule_kernel_syscall_emission_site emission_site; - assert(lttng_event_rule_get_type(event_rule) == LTTNG_EVENT_RULE_TYPE_SYSCALL); + assert(lttng_event_rule_get_type(event_rule) == LTTNG_EVENT_RULE_TYPE_KERNEL_SYSCALL); - emission_site_type = - lttng_event_rule_syscall_get_emission_site_type(event_rule); + emission_site = + lttng_event_rule_kernel_syscall_get_emission_site(event_rule); - event_rule_status = lttng_event_rule_syscall_get_pattern( + event_rule_status = lttng_event_rule_kernel_syscall_get_name_pattern( event_rule, &pattern); assert(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK); - _MSG(" rule: %s (type: syscall:%s", pattern, - lttng_event_rule_syscall_emission_site_str( - emission_site_type)); + _MSG(" rule: %s (type: kernel:syscall:%s", pattern, + lttng_event_rule_kernel_syscall_emission_site_str( + emission_site)); - event_rule_status = lttng_event_rule_syscall_get_filter( + event_rule_status = lttng_event_rule_kernel_syscall_get_filter( event_rule, &filter); if (event_rule_status == LTTNG_EVENT_RULE_STATUS_OK) { _MSG(", filter: %s", filter); @@ -431,7 +431,7 @@ void print_event_rule(const struct lttng_event_rule *event_rule) case LTTNG_EVENT_RULE_TYPE_USERSPACE_PROBE: print_event_rule_userspace_probe(event_rule); break; - case LTTNG_EVENT_RULE_TYPE_SYSCALL: + case LTTNG_EVENT_RULE_TYPE_KERNEL_SYSCALL: print_event_rule_syscall(event_rule); break; default: @@ -539,9 +539,10 @@ static void print_condition_event_rule_matches( } } -static -void print_action_errors(const struct lttng_trigger *trigger, - const struct lttng_action *action) +static void print_action_errors(const struct lttng_trigger *trigger, + const struct lttng_action *action, + const uint64_t *action_path_indexes, + size_t action_path_length) { unsigned int i, count, printed_errors_count = 0; enum lttng_error_code error_query_ret; @@ -550,9 +551,13 @@ void print_action_errors(const struct lttng_trigger *trigger, const char *trigger_name; uid_t trigger_uid; enum lttng_trigger_status trigger_status; - struct lttng_error_query *query = - lttng_error_query_action_create(trigger, action); + struct lttng_error_query *query; + struct lttng_action_path *action_path = lttng_action_path_create( + action_path_indexes, action_path_length); + + assert(action_path); + query = lttng_error_query_action_create(trigger, action_path); assert(query); trigger_status = lttng_trigger_get_name(trigger, &trigger_name); @@ -625,11 +630,14 @@ end: MSG(""); lttng_error_query_destroy(query); lttng_error_query_results_destroy(results); + lttng_action_path_destroy(action_path); } static void print_one_action(const struct lttng_trigger *trigger, - const struct lttng_action *action) + const struct lttng_action *action, + const uint64_t *action_path_indexes, + size_t action_path_length) { enum lttng_action_type action_type; enum lttng_action_status action_status; @@ -773,7 +781,7 @@ void print_one_action(const struct lttng_trigger *trigger, /* The default is 1 so print only when it is a * special case. */ - _MSG(", rate policy: after every %" PRIu64 + _MSG(", rate policy: every %" PRIu64 " occurrences", policy_value); } @@ -795,7 +803,8 @@ void print_one_action(const struct lttng_trigger *trigger, } MSG(""); - print_action_errors(trigger, action); + print_action_errors(trigger, action, action_path_indexes, + action_path_length); end: return; @@ -949,16 +958,18 @@ void print_one_trigger(const struct lttng_trigger *trigger) assert(action_status == LTTNG_ACTION_STATUS_OK); for (i = 0; i < count; i++) { + const uint64_t action_path_index = i; const struct lttng_action *subaction = lttng_action_list_get_at_index( action, i); _MSG(" "); - print_one_action(trigger, subaction); + print_one_action(trigger, subaction, &action_path_index, + 1); } } else { _MSG(" action:"); - print_one_action(trigger, action); + print_one_action(trigger, action, NULL, 0); } print_trigger_errors(trigger);