Hi, i guess i have a general lack of understanding, regarding how the socket-implementation in sqUnixSocket.c works, maybe someone can give me some hints/ tipps?
Here's what i did: i compiled (with the android-ndk) the squeakvm (the android-version) with Sockets. Sockets in general seem to work (e.g. initializeNetwork, resolve a name etc works). But: when i do the following in the android emulator: | listener | listener := Socket newTCP. listener listenOn: 12345 backlogSize: 4.
and then try to connect to that socket via telnet - the vm crashes immediatly!
Made some debug-output in the sqUnixSocket.c, the initialization of the listening socket seems to work correct. The Problem is, that i have no clue what happens in the moment, when a client tries to connect to that socket. I assumed that the program flow might reach the "static void acceptHandler(int fd, void *data, int flags)" - but it never get's there. Have no idea where to debug or to put more debug-output to find out, what causes the crash. Maybe someone here to enlight me?
regards, Stefan
P.S.: did i mention, that i'm completly new to vm-hacking?
solved that crashing-problem: aioInit() was never called, so the handler for SIGIO was not installed. Listening on a server socket worked, but if the kernel sent SIGIO to signal an incoming connection and available data for reading, the vm crashed. But VNC is still not working - need more debugging (which means: putting more debug-output all over the code). regards, Stefan
2010/3/22 Stefan Krecher stefan.krecher@googlemail.com:
Hi, i guess i have a general lack of understanding, regarding how the socket-implementation in sqUnixSocket.c works, maybe someone can give me some hints/ tipps?
Here's what i did: i compiled (with the android-ndk) the squeakvm (the android-version) with Sockets. Sockets in general seem to work (e.g. initializeNetwork, resolve a name etc works). But: when i do the following in the android emulator: | listener | listener := Socket newTCP. listener listenOn: 12345 backlogSize: 4.
and then try to connect to that socket via telnet - the vm crashes immediatly!
Made some debug-output in the sqUnixSocket.c, the initialization of the listening socket seems to work correct. The Problem is, that i have no clue what happens in the moment, when a client tries to connect to that socket. I assumed that the program flow might reach the "static void acceptHandler(int fd, void *data, int flags)" - but it never get's there. Have no idea where to debug or to put more debug-output to find out, what causes the crash. Maybe someone here to enlight me?
regards, Stefan
P.S.: did i mention, that i'm completly new to vm-hacking?
vm-dev@lists.squeakfoundation.org