函数逻辑报告 |
Source Code:kernel\trace\trace_uprobe.c |
Create Date:2022-07-27 13:55:53 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:trace_uprobe_create
函数原型:static int trace_uprobe_create(int argc, const char **argv)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
int | argc | |
const char ** | argv |
536 | event等于NULL, group等于UPROBE_EVENT_SYSTEM |
541 | bool is_return = false |
544 | ret等于0 |
545 | ref_ctr_offset等于0 |
552 | 退出 |
553 | 默认 |
554 | 返回:负ECANCELED |
563 | 如果非strchr - Find the first occurrence of the character c in the string s.*@s: the string to be searched*@c: the character to search for则返回:负ECANCELED |
566 | filename等于kstrdup(argv[1], GFP_KERNEL) |
571 | arg等于strrchr - Find the last occurrence of a character in a string*@s: The string to be searched*@c: The character to search for |
577 | trace_probe_log_init("trace_uprobe", argc, argv) |
578 | trace_probe_log_set_index(1) |
580 | arg自加等于'\0' |
581 | ret等于kern_path(filename, llow links at the end , & path) |
582 | 如果ret则 |
595 | rctr等于strchr - Find the first occurrence of the character c in the string s.*@s: the string to be searched*@c: the character to search for |
596 | 如果rctr则 |
597 | rctr_end等于strchr - Find the first occurrence of the character c in the string s.*@s: the string to be searched*@c: the character to search for |
598 | 如果非rctr_end则 |
603 | 转到:fail_address_parse |
604 | 否则如果rctr_end[1]不等于'\0'则 |
606 | trace_probe_log_err(rctr_end + 1 - filename, BAD_REFCNT_SUFFIX) |
608 | 转到:fail_address_parse |
611 | rctr自加等于'\0' |
612 | rctr_end等于'\0' |
614 | 如果ret则 |
615 | trace_probe_log_err(rctr - filename, BAD_REFCNT) |
616 | 转到:fail_address_parse |
622 | 如果ret则 |
624 | 转到:fail_address_parse |
628 | trace_probe_log_set_index(0) |
629 | 如果event则 |
632 | 如果ret则转到:fail_address_parse |
634 | 否则 |
638 | tail等于kstrdup(返回路径的最后一部分, GFP_KERNEL) |
639 | 如果非tail则 |
641 | 转到:fail_address_parse |
653 | argc减等于2 |
654 | argv加等于2 |
657 | 如果是错误则 |
669 | 以i小于argc且i小于MAX_TRACE_ARGS循环 |
670 | tmp等于kstrdup(argv[i], GFP_KERNEL) |
671 | 如果非tmp则 |
676 | trace_probe_log_set_index(i + 2) |
677 | ret等于traceprobe_parse_probe_arg( & tp, i, tmp, is_return ? TPARG_FL_RETURN : 0) |
684 | ret等于traceprobe_set_print_fmt( & tp, is_ret_probe(tu)) |
692 | error : |
693 | free_trace_uprobe(tu) |
694 | out : |
695 | trace_probe_log_clear() |
696 | 返回:ret |
698 | fail_address_parse : |
699 | trace_probe_log_clear() |
703 | 返回:ret |
名称 | 描述 |
---|---|
create_or_delete_trace_uprobe |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |