From 12f132de23d08a453be5c1664d4ed67a2c286002 Mon Sep 17 00:00:00 2001 From: zy Date: Wed, 22 Nov 2023 21:16:27 -0500 Subject: [PATCH] raw_stack_detail --- source/module/monitor_trace.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source/module/monitor_trace.h b/source/module/monitor_trace.h index 7930a04..501add1 100644 --- a/source/module/monitor_trace.h +++ b/source/module/monitor_trace.h @@ -14,6 +14,8 @@ #define MAX_NAME_LEN (15) // max name length #define TIMER_MAX_WATCH_NUM (32) // A timer max watch number at once time +#define DIAG_USER_STACK_SIZE (16 * 1024) + typedef struct { pid_t task_id; // current process id char name[MAX_NAME_LEN + 1]; // name @@ -65,6 +67,15 @@ typedef struct { unsigned long stack[BACKTRACE_DEPTH]; } user_stack_detail; +typedef struct { + struct pt_regs regs; + unsigned long ip; + unsigned long bp; + unsigned long sp; + unsigned long stack_size; + unsigned long stack[DIAG_USER_STACK_SIZE / sizeof(unsigned long)]; +} raw_stack_detail; + typedef struct { unsigned int full_argv[PROCESS_CHAINS_COUNT]; // char chains[PROCESS_CHAINS_COUNT][PROCESS_ARGV_LEN]; // process chains argv @@ -78,6 +89,7 @@ typedef struct { unsigned long long tv; task_detail task; // brief user_stack_detail user_stack; // user stack + raw_stack_detail raw_stack; kern_stack_detail kern_stack; // kernel stack proc_chains_detail proc_chains; // process chains argv } variable_monitor_task;