Last week: Committed what's basically a complete re-write of the original froggy. (Hey, I threw the original together in about a week and a half--it was kinda messy...) The new version is based on the new utrace API--I'm running a 2.6.27-rc2-git1 kernel and I suspect this version won't even compile on much less than that.
The big functional delta is that all the messy i/f details are now hidden in a libfroggy.so, including the separate-thread asynchronous listener. (This makes the client dead simple--see demos/stracef/stracef.c for an example.) The new i/f incorporates a callback scheme to get asynch reports, kinda skeletal at the moment, that works more or less the same way utrace does within the kernel. (Some interest has been expressed in having the asynch listener--which shows up as a blocking-read file descriptor--be select()able/poll()able. It looks like it can be made pollable: struct file_operations has a .poll member which, once I figure out how to use it, should work. Don't know yet if select() can be made to work--it's a different sysscall and I don't know yet if it uses the same underlying mechanism as poll.) This week: * Add documentation. * Add fork/eexec/attach support. * Add syscall entry filtering. * Add signal reporting and filtering. * Hack otherwise as necessary. -- Chris Moller I know that you believe you understand what you think I said, but I'm not sure you realize that what you heard is not what I meant. -- Robert McCloskey
signature.asc
Description: OpenPGP digital signature