This is the mail archive of the
mailing list for the frysk project.
Re: Test and fix for syscall observer adding (bug #3147)
On Fri, 2006-09-01 at 15:26 +0200, Mark Wielaard wrote:
> On Fri, 2006-09-01 at 14:35 +0200, Mark Wielaard wrote:
> > Here is a test and a fix for bug #3147.
> I removed the test since it fails to compile on x86. Sorry about that.
> ../../frysk/frysk-core/frysk/proc/TestSyscallRunning.java:243: error: No
> variable âSYSacceptâ defined in type âfrysk.sys.SyscallNumâ.
> if (syscallNum == SyscallNum.SYSaccept)
> 2006-09-01 Mark Wielaard <firstname.lastname@example.org>
> * TestSyscallRunning.java: Removed doesn't compile on x86.
> As soon as SyscallNum is fixed, I'll add it back.
This is trickier than I thought. On x86_64 there is a real accept()
syscall (#43). But on x86 there is one syscall socketcall (#102) that
takes an argument to indicate whether the user wants either the
socket(), bind(), connect(), listen(), accept(), etc. "subcalls".
For the testcase I can of course do some tricks and see if accept() is a
syscall or, if not, whether socketcall() is available and then select
based on the first argument of the syscall to see if it really is accept
(#5). But this seems 1) fragile and 2) looks like a general problem
people will have when using Syscall Observers.
Question is if we want to provide the user with the raw syscalls or try
to present the user with the same syscall (names) on all platforms. Or
is this a task for something higher level?
strace for example presents the socketcall subcalls as if they are real
system calls on systems that don't have real bind(), accept(), listen(),