函数逻辑报告 | 
Source Code:kernel\debug\kdb\kdb_io.c | 
Create Date:2022-07-27 12:44:05 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:vkdb_printf
函数原型:int vkdb_printf(enum kdb_msgsrc src, const char *fmt, va_list ap)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| enum kdb_msgsrc | src | |
| const char * | fmt | |
| va_list | ap | 
| 550 | saved_loglevel等于0 | 
| 551 | retlen等于0 | 
| 554 | cphold等于NULL, replaced_byte等于' ' | 
| 555 | moreprompt等于"more> " | 
| 556 | c等于console_drivers | 
| 563 | local_irq_save(flags) | 
| 565 | 循环 | 
| 566 | old_cpu等于cmpxchg( & kdb_printf_cpu, - 1, this_cpu) | 
| 570 | cpu_relax() | 
| 573 | diag等于kdbgetintenv("LINES", & linecount) | 
| 577 | diag等于kdbgetintenv("COLUMNS", & colcount) | 
| 581 | diag等于kdbgetintenv("LOGGING", & logging) | 
| 602 | cp等于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 | 
| 603 | 如果非cp则 | 
| 617 | 如果next_avail恒等于A bit too big to go on stack 则 | 
| 625 | 如果非字符串指定长度比较则 | 
| 632 | 转到:kdb_printit | 
| 639 | size_avail等于A bit too big to go on stack 的长度减len | 
| 640 | 转到:kdb_print_out | 
| 647 | cp自加 | 
| 648 | replaced_byte等于cp | 
| 650 | cp等于'\0' | 
| 657 | fnd等于search arg1 to see if it contains arg2* (kdmain.c provides flags for ^pat and pat$)* return 1 for found, 0 for not found | 
| 658 | 如果非fnd则 | 
| 683 | kdb_printit : | 
| 691 | gdbstub_msg_write(cp, retlen - (cp - A bit too big to go on stack )) | 
| 692 | 否则 | 
| 707 | 如果logging则 | 
| 712 | 否则打印信息("%s", A bit too big to go on stack ) | 
| 722 | got等于0 | 
| 725 | 如果A bit too big to go on stack [len]恒等于'\n'则 | 
| 727 | got等于0 | 
| 728 | 否则如果A bit too big to go on stack [len]恒等于'\r'则 | 
| 729 | got等于0 | 
| 730 | 否则 | 
| 731 | got自加 | 
| 734 | Current number of lines displayed 加等于got除colcount加1的和 | 
| 738 | 如果Current number of lines displayed 大于等于linecount则 | 
| 750 | moreprompt等于kdbgetenv("MOREPROMPT") | 
| 751 | 如果(moreprompt == NULL)则moreprompt等于"more> " | 
| 755 | c等于console_drivers | 
| 757 | 如果dbg_io_ops且非is_console则 | 
| 759 | cp等于moreprompt | 
| 761 | write_char( * cp) | 
| 762 | cp自加 | 
| 778 | A bit too big to go on stack [0]等于'\0' | 
| 780 | size_avail等于A bit too big to go on stack 的长度 | 
| 784 | KDB_STATE_CLEAR(PAGER) | 
| 787 | kdb_printf("\n") | 
| 788 | 否则如果ch恒等于' '则 | 
| 789 | kdb_printf("\r") | 
| 790 | suspend_grep等于1 | 
| 795 | 否则如果ch恒等于'/'且非Miscellaneous functions and data areas 则 | 
| 796 | kdb_printf("\r") | 
| 801 | suspend_grep等于1 | 
| 802 | 否则如果ch则 | 
| 804 | suspend_grep等于1 | 
| 805 | 如果ch不等于'/'则kdb_printf("\nOnly 'q', 'Q' or '/' are processed at more prompt, input ignored\n") | 
| 809 | 否则kdb_printf("\n'/' cannot be used during | grep filtering, input ignored\n") | 
| 812 | 否则如果Miscellaneous functions and data areas 则 | 
| 814 | suspend_grep等于1 | 
| 815 | kdb_printf("\n") | 
| 827 | cphold等于replaced_byte | 
| 831 | size_avail等于A bit too big to go on stack 的长度减len | 
| 834 | kdb_print_out : | 
| 835 | suspend_grep等于0 | 
| 839 | smp_store_release( & kdb_printf_cpu, old_cpu) | 
| 840 | local_irq_restore(flags) | 
| 841 | 返回:retlen | 
| 名称 | 描述 | 
|---|---|
| kdb_printf | |
| vprintk_default | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |