Für eine grosse Webseite, welche ich als Privatprojekt am entwickeln
bin, brauche ich einen Server, welcher das HTTP und das Websocket
Protokoll unterstützt. Aufgrund grösserer Flexibilität habe ich mich
entschieden einen eigenen WebsocketServer in C++ zu programmieren.
Dieser funktioniert auch bereits teilweise, aber leider kommt es beim
aufrufen einer Seite manchmal zu einem Segmentation fault. Ich konnte
leider noch nicht herausfinden, was zu diesem Segmentation fault führt,
und hoffe hier auf Tipps, Hinweise, Kritik und/oder
Verbesserungsvorschläge.
Den Sourcecode gibt es hier:
http://87.102.188.235/WebsocketServer.zip
GDB hat mir folgendes verraten:
1 | Program received signal SIGSEGV, Segmentation fault.
|
2 | [Switching to Thread 0x7ffff6e92700 (LWP 5005)]
|
3 | 0x00000000004052d0 in client::ws_send(void*) ()
|
4 | (gdb) backtrace
|
5 | #0 0x00000000004052d0 in client::ws_send(void*) ()
|
6 | #1 0x00000000004059a5 in task::solve(unsigned char*) ()
|
7 | #2 0x0000000000402eca in c_worker::do_work() ()
|
8 | #3 0x0000000000402ff2 in worker() ()
|
9 | #4 0x00000000004026b0 in callThreadFunc(void*) ()
|
10 | #5 0x00007ffff7bc7b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
|
11 | #6 0x00007ffff6f6f0ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
|
12 | #7 0x0000000000000000 in ?? ()
|