-
Notifications
You must be signed in to change notification settings - Fork 257
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
syscalls: rework syscall arguments processing #1807
Conversation
Can one of the admins verify this patch? |
@drakvuf-jenkins Test this please |
@drakvuf-jenkins Retest this please |
On Linux we get
|
Yes, the assert worked as I expected - it found a bug: printing a Linux syscall with an argument defined as Also I missed the point that Linux syscalls were also described by arguments with uppercase names, but I specified them for Windows OS. I am going to add primitive types for Linux syscalls and not mix them with Windows types - this will also help to better understand what their real type and size are. And of course, replace void types with real ones. |
@drakvuf-jenkins Test this please |
@tklengyel all done, but it seems that "check" tests are not run during CI (*check.cpp files). |
Feel free to add a ci step for that |
@tklengyel all done:
|
@drakvuf-jenkins Test this please |
@drakvuf-jenkins Test this please |
Thanks! |
Reworked static information about syscall arguments, each argument type is now associated with an exact size (to remove extra bytes in values obtained from registers/stack) and other characteristics.
(size bug was detected for type
FS_INFORMATION_CLASS
:FsInformationClass=0x4500000003
)Removed previous workarounds for certain types (see #1302).
Bonus: pointer types are now associated with the types they point to - this is in preparation for the upcoming feature to reflectively print arguments by pointers (not just for
PPVOID
intransform_value
), see #1756.A few syscalls have also been implemented (usually using Windows
*_CLASS
class enums, this is an attempt to cover all existing*_CLASS
types.Implemented a check test suite for "syscalls": it checks if information for all argument types is present (to prevent a runtime fail).