mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
pass context to memory allocation
This commit is contained in:
@ -330,18 +330,6 @@ def process_func_body(
|
|||||||
|
|
||||||
local_sym_tab = {}
|
local_sym_tab = {}
|
||||||
|
|
||||||
# pre-allocate dynamic variables
|
|
||||||
local_sym_tab = allocate_mem(
|
|
||||||
module,
|
|
||||||
builder,
|
|
||||||
func_node.body,
|
|
||||||
func,
|
|
||||||
ret_type,
|
|
||||||
map_sym_tab,
|
|
||||||
local_sym_tab,
|
|
||||||
structs_sym_tab,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add the context parameter (first function argument) to the local symbol table
|
# Add the context parameter (first function argument) to the local symbol table
|
||||||
if func_node.args.args and len(func_node.args.args) > 0:
|
if func_node.args.args and len(func_node.args.args) > 0:
|
||||||
context_arg = func_node.args.args[0]
|
context_arg = func_node.args.args[0]
|
||||||
@ -371,6 +359,18 @@ def process_func_body(
|
|||||||
local_sym_tab[context_name] = context_type
|
local_sym_tab[context_name] = context_type
|
||||||
logger.info(f"Added argument '{context_name}' to local symbol table")
|
logger.info(f"Added argument '{context_name}' to local symbol table")
|
||||||
|
|
||||||
|
# pre-allocate dynamic variables
|
||||||
|
local_sym_tab = allocate_mem(
|
||||||
|
module,
|
||||||
|
builder,
|
||||||
|
func_node.body,
|
||||||
|
func,
|
||||||
|
ret_type,
|
||||||
|
map_sym_tab,
|
||||||
|
local_sym_tab,
|
||||||
|
structs_sym_tab,
|
||||||
|
)
|
||||||
|
|
||||||
logger.info(f"Local symbol table: {local_sym_tab.keys()}")
|
logger.info(f"Local symbol table: {local_sym_tab.keys()}")
|
||||||
|
|
||||||
for stmt in func_node.body:
|
for stmt in func_node.body:
|
||||||
|
|||||||
@ -15,9 +15,9 @@ from ctypes import c_int64, c_void_p # noqa: F401
|
|||||||
@section("tracepoint/syscalls/sys_enter_execve")
|
@section("tracepoint/syscalls/sys_enter_execve")
|
||||||
def hello_world(ctx: struct_trace_event_raw_sys_enter) -> c_int64:
|
def hello_world(ctx: struct_trace_event_raw_sys_enter) -> c_int64:
|
||||||
a = 2 + TASK_COMM_LEN + TASK_COMM_LEN
|
a = 2 + TASK_COMM_LEN + TASK_COMM_LEN
|
||||||
# b = ctx
|
b = ctx.id
|
||||||
print(f"Hello, World{TASK_COMM_LEN} and {a}")
|
print(f"Hello, World{TASK_COMM_LEN} and {a}")
|
||||||
# print(f"This is context field {b}")
|
print(f"This is context field {b}")
|
||||||
return c_int64(TASK_COMM_LEN + 2)
|
return c_int64(TASK_COMM_LEN + 2)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user