Function report |
Source Code:kernel\debug\kdb\kdb_main.c |
Create Date:2022-07-28 11:41:15 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:kdb_parse
Proto:int kdb_parse(const char *cmdstr)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| const char * | cmdstr |
| 919 | ignore_errors = 0 , check_grep = 0 |
| 926 | If KDB_FLAG(CMD_INTERRUPT) Then |
| 935 | argc = 0 |
| 939 | When Note: isspace() must return false for %NUL-terminator ( * cp) cycle |
| 940 | cp++ |
| 941 | If cp == '\0' || cp == '\n' || cp == '#' && Not defcmd_in_progress Then Break |
| 945 | If cp == '|' Then |
| 946 | check_grep++ |
| 947 | Break |
| 949 | If cpp >= cbuf + kdb_printf: max printline* size == 256 Then |
| 950 | kdb_printf("kdb_parse: command buffer overflow, command ignored\n%s\n", cmdstr) |
| 956 | kdb_printf("kdb_parse: too many arguments, command ignored\n%s\n", cmdstr) |
| 961 | escaped = 0 |
| 962 | quoted = '\0' |
| 967 | If cpp >= cbuf + kdb_printf: max printline* size == 256 Then Break |
| 969 | If escaped Then |
| 974 | If cp == '\\' Then |
| 986 | ++cpp |
| 988 | cpp++ = '\0' |
| 991 | If Not argc Then Return 0 |
| 995 | If defcmd_in_progress Then |
| 1005 | ignore_errors = 1 |
| 1006 | ++argv[0] |
| 1010 | If Command name Then |
| 1018 | If strncmp(argv[0], Command name , Minimum legal # command* chars required ) == 0 Then |
| 1021 | Break |
| 1025 | If strcmp(argv[0], Command name ) == 0 Then Break |
| 1035 | If i == kdb_max_commands Then |
| 1037 | If Command name Then |
| 1038 | If strncmp(argv[0], Command name , strlen - Find the length of a string*@s: The string to be sized) == 0 Then |
| 1041 | Break |
| 1047 | If i < kdb_max_commands Then |
| 1050 | If Not Check whether the flags of the current command and the permissions* of the kdb console has allow a command to be run. Then Return KDB_NOPERM |
| 1053 | KDB_STATE_SET(CMD) |
| 1054 | result = ( * Function to execute command )(argc - 1, argv) |
| 1055 | If result && ignore_errors && result > Kernel Debugger Command codes. Must not overlap with error codes. Then result = 0 |
| 1057 | KDB_STATE_CLEAR(CMD) |
| 1059 | If Command behaviour flags & Repeat the command with args Then Return result |
| 1062 | argc = If Command behaviour flags & Repeat the command w/o arguments Then 1 Else 0 |
| 1065 | Return result |
| 1077 | char * name = NULL |
| 1079 | nextarg = 0 |
| 1086 | kdb_printf("%s = ", argv[0]) |
| 1088 | kdb_printf("\n") |
| 1089 | Return 0 |
| Name | Describe |
|---|---|
| kdb_exec_defcmd | Forward references |
| kdb_local | kdb_local - The main code for kdb |
| kdb_cmd_init | Execute any commands defined in kdb_cmds. |
| kdb_bt |
| 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 |