| Function report | 
| Source Code: kernel\trace\trace_uprobe.c | Create Date:2022-07-28 12:44:23 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:trace_uprobe_create
Proto:static int trace_uprobe_create(int argc, const char **argv)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| 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 | 
| 548 | Case argv[0][0] == 'r' | 
| 549 | is_return = true | 
| 550 | Break | 
| 551 | Case argv[0][0] == 'p' | 
| 552 | Break | 
| 553 | Default | 
| 554 | Return -ECANCELED | 
| 563 | If Not 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 Then Return -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 | If ret Then | 
| 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 | If rctr Then | 
| 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 | If Not rctr_end Then | 
| 603 | Go to fail_address_parse | 
| 604 | Else if rctr_end[1] != '\0' Then | 
| 606 | trace_probe_log_err(rctr_end + 1 - filename, BAD_REFCNT_SUFFIX) | 
| 608 | Go to fail_address_parse | 
| 611 | rctr++ = '\0' | 
| 612 | rctr_end = '\0' | 
| 614 | If ret Then | 
| 615 | trace_probe_log_err(rctr - filename, BAD_REFCNT) | 
| 616 | Go to fail_address_parse | 
| 622 | If ret Then | 
| 624 | Go to fail_address_parse | 
| 628 | trace_probe_log_set_index(0) | 
| 629 | If event Then | 
| 632 | If ret Then Go to fail_address_parse | 
| 634 | Else | 
| 638 | tail = kstrdup(kbasename - return the last part of a pathname.*@path: path to extract the filename from., GFP_KERNEL) | 
| 639 | If Not tail Then | 
| 641 | Go to fail_address_parse | 
| 653 | argc -= 2 | 
| 654 | argv += 2 | 
| 664 | ref_ctr_offset = ref_ctr_offset | 
| 669 | When i < argc && i < MAX_TRACE_ARGS cycle | 
| 670 | tmp = kstrdup(argv[i], GFP_KERNEL) | 
| 671 | If Not tmp Then | 
| 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 | Return ret | 
| 698 | fail_address_parse : | 
| 699 | trace_probe_log_clear() | 
| 703 | Return ret | 
| Name | Describe | 
|---|---|
| create_or_delete_trace_uprobe | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |