Hi, Ok we have the carry flag issue hopefully behind us now. We can set it correctly, and the 0 length mmap error is fixed.
What remains now is : - Get memcheck to report malloc/mmap errors correctly. This is a big task that will require us to look at memcheck and fix what is required. - Get the symbol demangling correcty. Errors that have stack traces like 0x12345 ???? 0x3355 ???? are useless of course.. Once these two things are ready, we will be in a position to define missing syscalls and run some proper checks against the code. I am also quite unsure of how correctly our PRE/POST syscalls report modified bytes etc to the tool. Fixing memcheck will also probably take us into this. Have a nice day, Kailash On 8/6/06, Peter Bex <[EMAIL PROTECTED]> wrote: > Hai all, > > The current status is as follows: I checked in my code on the syscall > stuff. This means that currently *PROGRAMS DO NOT WORK*. I'm pretty > confident we can get it to work. Why? Let's see: > > When you run, for example, a lstat on a file that exists, it neatly > returns the correct return value (0) and you'll see that errno is set > to 0 as well. > > When you run lstat on a file that does NOT exist, it doesn't return -1 > as it should, but it returns 2. errno is set to 0! > If you look at libc code, you'll see that in libc/arch/i386/sys/syscall.S > it simply returns the normal eax return value if the carry isn't set. > Otherwise, it calls CERROR. CERROR is defined in > libc/arch/i386/sys/cerror.S, as calling errno, and then SETTING > EAX to -1. > > So, it looks like EAX gets set correctly, it just doesn't convert it to -1 > and set the errno to EAX. Internally for valgrind everything is kosher > too (the assertion about matching status is not triggered). The only > problem left is figuring out how the hell to get Vex to load up the > carry flag. > > I'm trying to get my head around Vex atm, it looks hugely abstracted > and I'm not sure yet how to get some code emitted that will set the > carry flag just after calling int 0x80. This should happen on all > platforms, BTW. The only strange OS is Linux, which doesn't use carry > flags to signal error. They're bitches. > > Peter > -- > http://sjamaan.ath.cx > -- > "The process of preparing programs for a digital computer > is especially attractive, not only because it can be economically > and scientifically rewarding, but also because it can be an aesthetic > experience much like composing poetry or music." > -- Donald Knuth > > > _______________________________________________ > Vg4nbsd-devel mailing list > [email protected] > http://bat.berlios.de/mailman/listinfo/vg4nbsd-devel > > > > _______________________________________________ Vg4nbsd-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/vg4nbsd-devel
