[kaffe] Cygwin status update
Dalibor Topic
robilad@kaffe.org
Fri Dec 19 12:14:02 2003
Hi Jim,
Jim Pick wrote:
> On Tue, 16 Dec 2003 00:57:44 +0100
> Dalibor Topic <robilad@kaffe.org> wrote:
>
>
>>hi all,
>>
>>I've been playing with Cygwin & kaffe last week, and I've got patches to
>>gradually merge in, that let kaffe build again as a static binary.
>
>
> Excellent.
done.
>>It doesn't fully work, as the kjc step to build rt,jar crashes.
>
>
> I don't think that step ever worked.
>
It did, that's the funny bit. I assume the crash is due to me not
implementing the signal handling bit, I'll look at it during the weekend.
>>Investigation about it shows me that the old findJarFile bug still
>>strikes on Cygwin. This time I was able to figure out a little more, though.
>>
>>The problem seems to be that the first few bytes of the findJarFile
>>function in kaffe/kaffevm/jar.c somehow get overwritten. I've tried to
>>debug it with awatch in GDB, but didn't suceed in catching the
>>overwriting happen. So I'd be glad to hear tips & tricks on dealing with
>>that type of bugs from other developers.
>
I've got bad news. The byte flipping happens before main is called at
all. This will be a hard bug to shoot down.
> Valgrind is what you want!
>
> http://valgrind.kde.org/
>
> It'll tell you exactly where to look, usually.
Ah, yes. But there is no cygwin port afaik :( But maybe I can try other
memory checkers (dmalloc, efence) if they have been ported to Cygwin.
> I did get it to run Kaffe interpreter x86 binaries on Linux.
>
> Using it with the JIT is a problem because Valgrind needs to be
> explicitly informed about self-modifying code (because it is an
> x86-to-x86 JIT itself). There is a way to add "hints" to the
> code to help Valgrind do the right thing, but I didn't figure
> that out yet.
>
> For cygwin, some people have managed to get valgrind to run wine, so
> it's possible to run it against Windows binaries that work with wine.
> Scary, huh?
I think the 'cygwin on wine' project hasn't got very far ;)
cheers,
dalibor topic