针对特定进程的调用栈
方法:通过进程的task_struct获取寄存器状态,调用堆栈回溯函数。
#include <linux/sched.h>
#include <asm/stacktrace.h>
void print_process_stack(struct task_struct *task) {
struct stack_trace trace;
unsigned long entries[32];
trace.nr_entries = 0;
trace.max_entries = ARRAY_SIZE(entries);
trace.entries = entries;
trace.skip = 0;
save_stack_trace_tsk(task, &trace); // 保存指定进程的堆栈
print_stack_trace(&trace, 0); // 打印堆栈信息
}
942

被折叠的 条评论
为什么被折叠?



