summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorzy <[email protected]>2023-11-22 21:16:27 -0500
committerzy <[email protected]>2023-11-22 21:16:27 -0500
commit12f132de23d08a453be5c1664d4ed67a2c286002 (patch)
treea3c8f6a7b21332596dab9db9a083ee57b21ff105 /source
parent0ae425d99e2df24d014987e035ac3041fec444b1 (diff)
raw_stack_detail
Diffstat (limited to 'source')
-rw-r--r--source/module/monitor_trace.h12
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;