diff options
| author | zy <[email protected]> | 2023-11-22 21:16:27 -0500 |
|---|---|---|
| committer | zy <[email protected]> | 2023-11-22 21:16:27 -0500 |
| commit | 12f132de23d08a453be5c1664d4ed67a2c286002 (patch) | |
| tree | a3c8f6a7b21332596dab9db9a083ee57b21ff105 /source | |
| parent | 0ae425d99e2df24d014987e035ac3041fec444b1 (diff) | |
raw_stack_detail
Diffstat (limited to 'source')
| -rw-r--r-- | source/module/monitor_trace.h | 12 |
1 files changed, 12 insertions, 0 deletions
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 @@ -66,6 +68,15 @@ typedef struct { } 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 unsigned int tgid[PROCESS_CHAINS_COUNT]; // process chains tgid @@ -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; |
