Hi Jakub, 2011/6/30 Jakub Jermar <ja...@jermar.eu>: > Hi, > > we have been observing a problem with HelenOS running on the latest git > Qemu/sparc64. The gist of the problem is that the following computation > of minimum of 64 and 512 surprisingly gives 512: > > bytes = min(len, BPS(bs) - pos % BPS(bs)); > bytes = min(bytes, nodep->size - pos); > > On input, `len` is 64, `pos` is 0, `BPS(bs)` is 512 and `nodep->size` is > some bigger number. Surprisingly, in a non-single-stepping mode, Qemu > computes `bytes` as 512 instead of 64.
How is did you manage to see "bytes" without GDB? In my case, as reported, a printf or any other statement using bytes was simply not reached. >When singlestepping via GDB, the > result is correct. You mean singlestepping gives other result than just setting a breakpoint at target address? And just to clarify, with 'singlestepping' do you mean manual stepping through the code, or the '-singlestep' qemu option? > I think this could be a bug in Qemu so I am attaching the relevant > portion of qemu.log with some comments and pointers in it. > > I would appreciate if someone who understands the sparc64 code > translation could have a look at this. More debugging data may be > provided upon request. > > Thanks, > Jakub > > _______________________________________________ > HelenOS-devel mailing list > helenos-de...@lists.modry.cz > http://lists.modry.cz/cgi-bin/listinfo/helenos-devel > > -- Regards, Artyom Tarasenko solaris/sparc under qemu blog: http://tyom.blogspot.com/