182 /*
183 * The architecture-independent dump_stack generator
184 */
185 void dump_stack(void)
186 {
187 unsigned long bp;
188 unsigned long stack;
189
190 bp = stack_frame(current, NULL); //在这边得到当前进程的 bp 值。
191 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
192 current->pid, current->comm, print_tainted(),
193 init_utsname()->release,
194 (int)strcspn(init_utsname()->version, " "),
195 init_utsname()->version);
196 show_trace(NULL, NULL, &stack, bp) ;// 打印出函数调用栈,见下面
197 }
183 * The architecture-independent dump_stack generator
184 */
185 void dump_stack(void)
186 {
187 unsigned long bp;
188 unsigned long stack;
189
190 bp = stack_frame(current, NULL); //在这边得到当前进程的 bp 值。
191 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
192 current->pid, current->comm, print_tainted(),
193 init_utsname()->release,
194 (int)strcspn(init_utsname()->version, " "),
195 init_utsname()->version);
196 show_trace(NULL, NULL, &stack, bp) ;// 打印出函数调用栈,见下面
197 }