| Function report | 
| Source Code: fs\coredump.c | Create Date:2022-07-28 20:30:53 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:rmat_corename will inspect the pattern parameter, and output a* name into corename, which must have space for at least* CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.
Proto:static int format_corename(struct core_name *cn, struct coredump_params *cprm, size_t **argv, int *argc)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct core_name * | cn | |
| struct coredump_params * | cprm | |
| size_t ** | argv | |
| int * | argc | 
| 194 | cred = current_cred - Access the current task's subjective credentials* Access the subjective credentials of the current task. RCU-safe,* since nobody else can modify it.() | 
| 195 | pat_ptr = core_pattern | 
| 197 | bool was_space = false | 
| 198 | pid_in_pattern = 0 | 
| 199 | err = 0 | 
| 201 | used = 0 | 
| 202 | corename = NULL | 
| 203 | If The maximal length of core_pattern is also specified in sysctl.c Then Return -ENOMEM | 
| 205 | corename[0] = '\0' | 
| 207 | If ispipe Then | 
| 208 | argvs = size of core_pattern / 2 | 
| 209 | argv = kmalloc_array - allocate memory for an array.*@n: number of elements.*@size: element size.*@flags: the type of memory to allocate (see kmalloc). | 
| 212 | ) = 0 | 
| 213 | ++pat_ptr | 
| 223 | If ispipe Then | 
| 224 | If Note: isspace() must return false for %NUL-terminator ( * pat_ptr) Then | 
| 228 | Else if was_space Then | 
| 236 | If pat_ptr != '%' Then | 
| 238 | Else | 
| 241 | Case * == 0 | 
| 242 | Go to out | 
| 244 | Case * == '%' | 
| 248 | Case * == 'p' | 
| 254 | Case * == 'P' | 
| 255 | err = cn_printf(cn, "%d", task_tgid_nr(current process)) | 
| 257 | Break | 
| 258 | Case * == 'i' | 
| 259 | err = cn_printf(cn, "%d", task_pid_vnr(current process)) | 
| 261 | Break | 
| 262 | Case * == 'I' | 
| 263 | err = cn_printf(cn, "%d", task_pid_nr(current process)) | 
| 265 | Break | 
| 267 | Case * == 'u' | 
| 271 | Break | 
| 273 | Case * == 'g' | 
| 277 | Break | 
| 278 | Case * == 'd' | 
| 281 | Break | 
| 283 | Case * == 's' | 
| 288 | Case * == 't' | 
| 296 | Case * == 'h' | 
| 303 | Case * == 'e' | 
| 304 | err = cn_esc_printf(cn, "%s", comm) | 
| 305 | Break | 
| 306 | Case * == 'E' | 
| 307 | err = cn_print_exe_file(cn) | 
| 308 | Break | 
| 310 | Case * == 'c' | 
| 311 | err = cn_printf(cn, "%lu", rlimit(RLIMIT_CORE)) | 
| 313 | Break | 
| 314 | Default | 
| 315 | Break | 
| 317 | ++pat_ptr | 
| 324 | out : | 
| 330 | If Not ispipe && Not pid_in_pattern && core_uses_pid Then | 
| 331 | err = cn_printf(cn, ".%d", task_tgid_vnr(current process)) | 
| 335 | Return ispipe | 
| Name | Describe | 
|---|---|
| do_coredump | 
| 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 |