You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Struct/union arguments (passed by value) and struct/union return values have a special calling convention. drgn.helpers.experimental.kmodify.call_function() currently doesn't support either:
It's not super common to pass or return structs in the kernel, but it does happen, so it'd be good to support it. The calling convention on x86-64 is something like small structs get split up and passed/returned in registers, and large structs are put on the stack. The psABI has the details.
Struct/union arguments (passed by value) and struct/union return values have a special calling convention.
drgn.helpers.experimental.kmodify.call_function()
currently doesn't support either:drgn/drgn/helpers/experimental/kmodify.py
Lines 1146 to 1153 in 2150a90
drgn/drgn/helpers/experimental/kmodify.py
Lines 1251 to 1259 in 2150a90
It's not super common to pass or return structs in the kernel, but it does happen, so it'd be good to support it. The calling convention on x86-64 is something like small structs get split up and passed/returned in registers, and large structs are put on the stack. The psABI has the details.
We'll definitely want tests for all of the cases in
tests/linux_kernel/helpers/test_kmodify.py
usingtests/linux_kernel/kmod/drgn_test.c
.The text was updated successfully, but these errors were encountered: