?????????????? ?????????????? ?????????????? ?????????????? tapset/sssd.stp000064400000021566152572264220007571 0ustar00# Database transaction probes probe sssd_transaction_start = process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_start") { nesting = $arg1; probestr = sprintf("-> %s(nesting=%d)", $$name, nesting); } probe sssd_transaction_commit_before = process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_commit_before") { nesting = $arg1; probestr = sprintf("<- %s(pre)(nesting=%d)", $$name, nesting); } probe sssd_transaction_commit_after = process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_commit_after") { nesting = $arg1; probestr = sprintf("<- %s(post)(nesting=%d)", $$name, nesting); } probe sssd_transaction_cancel = process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_cancel") { nesting = $arg1; probestr = sprintf("<- %s(nesting=%d)", $$name, nesting); } # LDAP search probes probe sdap_search_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_get_generic_ext_send") { base = user_string($arg1); scope = $arg2; if ($arg3 == 0) { filter = ""; } else { filter = user_string($arg3); } attrs = __get_argv($arg4, 0); probestr = sprintf("-> search base [%s] scope [%d] filter [%s]", base, scope, filter); } probe sdap_search_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_get_generic_ext_recv") { base = user_string($arg1); scope = $arg2; if ($arg3 == 0) { filter = ""; } else { filter = user_string($arg3); } probestr = sprintf("<- search base [%s] scope [%d] filter [%s]", base, scope, filter); } probe sdap_parse_entry = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_parse_entry") { attr = user_string($arg1); value = user_string_n($arg2, $arg3); } probe sdap_parse_entry_done = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_parse_entry_done") { # No arguments } probe sdap_deref_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_deref_search_send") { base_dn = user_string($arg1); deref_attr = user_string($arg2); probestr = sprintf("-> (%s)(base_dn=[%s],deref_attr=[%s])", $$name, base_dn, deref_attr); } probe sdap_deref_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_deref_search_recv") { base_dn = user_string($arg1); deref_attr = user_string($arg2); probestr = sprintf("-> (%s)(base_dn=[%s],deref_attr=[%s])", $$name, base_dn, deref_attr); } # LDAP account request probes probe sdap_acct_req_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_acct_req_send") { entry_type = $arg1; filter_type = $arg2; filter_value = user_string($arg3); extra_value = user_string($arg4); } probe sdap_acct_req_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_acct_req_recv") { entry_type = $arg1; filter_type = $arg2; filter_value = user_string($arg3); extra_value = user_string($arg4); } # LDAP user search probes probe sdap_search_user_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_send") { filter = user_string($arg1); } probe sdap_search_user_save_begin = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_save_begin") { filter = user_string($arg1); } probe sdap_search_user_save_end = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_save_end") { filter = user_string($arg1); } probe sdap_search_user_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_recv") { filter = user_string($arg1); } # LDAP group search probes probe sdap_nested_group_populate_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_pre") { # No arguments } probe sdap_nested_group_populate_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_post") { # No arguments } probe sdap_nested_group_save_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_save_pre") { # No arguments } probe sdap_nested_group_save_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_save_post") { # No arguments } probe sdap_nested_group_lookup_user_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_user_send") { # No arguments } probe sdap_nested_group_lookup_user_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_user_recv") { # No arguments } probe sdap_nested_group_lookup_group_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_group_send") { # No arguments } probe sdap_nested_group_lookup_group_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_group_recv") { # No arguments } probe sdap_nested_group_lookup_unknown_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_unknown_send") { # No arguments } probe sdap_nested_group_lookup_unknown_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_unknown_recv") { # No arguments } probe sdap_nested_group_deref_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_send") { # No arguments } probe sdap_nested_group_deref_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_recv") { # No arguments } probe sdap_nested_group_deref_process_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_process_pre") { # No arguments } probe sdap_nested_group_deref_process_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_process_post") { # No arguments } probe sdap_nested_group_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_send") { # No arguments } probe sdap_nested_group_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_recv") { # No arguments } probe sdap_nested_group_process_send = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_send") { orig_dn = user_string($arg1); probestr = sprintf("-> %s(orig_dn=[%s])", $$name, orig_dn); } probe sdap_nested_group_process_split_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_split_pre") { # No arguments } probe sdap_nested_group_process_split_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_split_post") { # No arguments } probe sdap_nested_group_check_cache_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_check_cache_pre") { # No arguments } probe sdap_nested_group_check_cache_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_check_cache_post") { # No arguments } probe sdap_nested_group_sysdb_search_users_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_users_pre") { # No arguments } probe sdap_nested_group_sysdb_search_users_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_users_post") { # No arguments } probe sdap_nested_group_sysdb_search_groups_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_groups_pre") { # No arguments } probe sdap_nested_group_sysdb_search_groups_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_groups_post") { # No arguments } probe sdap_nested_group_populate_search_users_pre = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_search_users_pre") { # No arguments } probe sdap_nested_group_populate_search_users_post = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_search_users_post") { # No arguments } probe sdap_nested_group_process_recv = process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_recv") { orig_dn = user_string($arg1); probestr = sprintf("-> %s(orig_dn=[%s])", $$name, orig_dn); } ## Data Provider Request Probes probe dp_req_send = process("/usr/libexec/sssd/sssd_be").mark("dp_req_send") { dp_req_domain = user_string($arg1, "NULL"); dp_req_name = user_string($arg2, "NULL"); dp_req_target = $arg3; dp_req_method = $arg4; } probe dp_req_done = process("/usr/libexec/sssd/sssd_be").mark("dp_req_done") { dp_req_name = user_string($arg1, "NULL"); dp_req_target = $arg2; dp_req_method = $arg3; dp_ret = $arg4; dp_errorstr = user_string($arg5, "NULL"); } tapset/sssd_functions.stp000064400000011307152572264220011651 0ustar00// constants global TARGET_ID=0, TARGET_AUTH=1, TARGET_ACCESS=2, TARGET_CHPASS=3, TARGET_SUDO=4, TARGET_AUTOFS=5, TARGET_SELINUX=6, TARGET_HOSTID=7, TARGET_SUBDOMAINS=8, TARGET_SESSION=9, TARGET_RESOLVER=10, TARGET_SENTINEL=11 global METHOD_CHECK_ONLINE=0, METHOD_ACCOUNT_HANDLER=1, METHOD_AUTH_HANDLER=2, METHOD_ACCESS_HANDLER=3, METHOD_SELINUX_HANDLER=4, METHOD_SUDO_HANDLER=5, METHOD_AUTOFS_HANDLER=6, METHOD_HOSTID_HANDLER=7, METHOD_DOMAINS_HANDLER=8, METHOD_RESOLVER_HANDLER=9, METHOD_SENTINEL=10 function acct_req_desc(entry_type) { if (entry_type == 0x0001) { str_entry_type = "user" } else if (entry_type == 0x0002) { str_entry_type = "group" } else if (entry_type == 0x0003) { str_entry_type = "initgroups" } else if (entry_type == 0x0004) { str_entry_type = "netgroups" } else if (entry_type == 0x0005) { str_entry_type = "services" } else if (entry_type == 0x0006) { str_entry_type = "sudo_full" } else if (entry_type == 0x0007) { str_entry_type = "sudo_rules" } else if (entry_type == 0x0008) { str_entry_type = "host" } else if (entry_type == 0x0009) { str_entry_type = "ip_network" } else if (entry_type == 0x0010) { str_entry_type = "subid_ranges" } else if (entry_type == 0x0011) { str_entry_type = "by_secid" } else if (entry_type == 0x0012) { str_entry_type = "user_and_group" } else if (entry_type == 0x0013) { str_entry_type = "by_uuid" } else if (entry_type == 0x0014) { str_entry_type = "by_cert" } else { str_entry_type = sprintf("%X", entry_type) } return str_entry_type } function sssd_acct_req_probestr(fc_name, entry_type, filter_type, filter_value, extra_value) { str_entry_type = acct_req_desc(entry_type) # Maybe we could use guru mode here and include the constants # directly.. if (filter_type == 1) { str_filter_type = "name" } else if (filter_type == 2) { str_filter_type = "idnum" } else if (filter_type == 3) { str_filter_type = "enum" } else if (filter_type == 4) { str_filter_type = "secid" } else if (filter_type == 5) { str_filter_type = "uuid" } else if (filter_type == 6) { str_filter_type = "cert" } else if (filter_type == 7) { str_filter_type = "wildcard" } else { str_filter_type = sprintf("%d", filter_type) } probestr = sprintf("%s(entry_type=%s, filter_type=%s, filter_value=%s, extra_value=%s)", fc_name, str_entry_type, str_filter_type, filter_value, extra_value) return probestr } function dp_target_str(target) { if (target == TARGET_ID) { str_target = "ID" } else if (target == TARGET_AUTH) { str_target = "AUTH" } else if (target == TARGET_ACCESS) { str_target = "ACCESS" } else if (target == TARGET_CHPASS) { str_target = "CHPASS" } else if (target == TARGET_SUDO) { str_target = "SUDO" } else if (target == TARGET_AUTOFS) { str_target = "AUTOFS" } else if (target == TARGET_SELINUX) { str_target = "SELINUX" } else if (target == TARGET_HOSTID) { str_target = "HOSTID" } else if (target == TARGET_SUBDOMAINS) { str_target = "SUBDOMAINS" } else if (target == TARGET_SESSION) { str_target = "SESSION" } else if (target == TARGET_RESOLVER) { str_target = "RESOLVER" } else if (target == TARGET_SENTINEL) { str_target = "TARGET_SENTINEL" } else { str_target = "UNKNOWN" } return str_target } function dp_method_str(method) { if (method == METHOD_CHECK_ONLINE) { str_method = "Check Online" } else if (method == METHOD_ACCOUNT_HANDLER) { str_method = "Account Handler" } else if (method == METHOD_AUTH_HANDLER) { str_method = "Auth Handler" } else if (method == METHOD_ACCESS_HANDLER) { str_method = "Access Handler" } else if (method == METHOD_SELINUX_HANDLER) { str_method = "SELinux Handler" } else if (method == METHOD_SUDO_HANDLER) { str_method = "Sudo Handler" } else if (method == METHOD_AUTOFS_HANDLER) { str_method = "Autofs Handler" } else if (method == METHOD_HOSTID_HANDLER) { str_method = "HostID Handler" } else if (method == METHOD_DOMAINS_HANDLER) { str_method = "Domains Handler" } else if (method == METHOD_RESOLVER_HANDLER) { str_method = "Resolver Handler" } else if (method == METHOD_SENTINEL) { str_method = "Method Sentinel" } else { str_method = "UNKNOWN" } return str_method } tapset/libpython2.7-64.stp000064400000001012152572264220011263 0ustar00/* Systemtap tapset to make it easier to trace Python */ /* Define python.function.entry/return: */ probe python.function.entry = process("python").library("/usr/lib64/libpython2.7.so.1.0").mark("function__entry") { filename = user_string($arg1); funcname = user_string($arg2); lineno = $arg3; } probe python.function.return = process("python").library("/usr/lib64/libpython2.7.so.1.0").mark("function__return") { filename = user_string($arg1); funcname = user_string($arg2); lineno = $arg3; } tapset/libperl5.26.3-64.stp000064400000002473152572264220011145 0ustar00/* This probe will fire when the perl script enters a subroutine. */ probe perl.sub.call = process("/usr/lib64/libperl.so.5.26").mark("sub__entry") { sub = user_string($arg1) filename = user_string($arg2) lineno = $arg3 package = user_string($arg4) } /* This probe will fire when the return from a subroutine has been hit. */ probe perl.sub.return = process("/usr/lib64/libperl.so.5.26").mark("sub__return") { sub = user_string($arg1) filename = user_string($arg2) lineno = $arg3 package = user_string($arg4) } /* This probe will fire when the Perl interperter changes state. */ probe perl.phase.change = process("/usr/lib64/libperl.so.5.26").mark("phase__change") { newphase = user_string($arg1) oldphase = user_string($arg2) } /* Fires when Perl has successfully loaded an individual file. */ probe perl.loaded.file = process("/usr/lib64/libperl.so.5.26").mark("loaded__file") { filename = user_string($arg1) } /* Fires when Perl is about to load an individual file. */ probe perl.loading.file = process("/usr/lib64/libperl.so.5.26").mark("loading__file") { filename = user_string($arg1) } /* Traces the execution of each opcode in the Perl runloop. */ probe perl.op.entry = process("/usr/lib64/libperl.so.5.26").mark("op__entry") { opname = user_string($arg1) }