linux-l: Threads unter Linux

Mathias Born mborn at faphida.in-berlin.de
Di Apr 7 00:24:27 CEST 1998


Till Christian Siering wrote:
> ich weis nicht welche Threads Bibliothek Du benutzt hast. Ich
> benutze die linuxthreads von Xavier Leroy und bin damit zufrieden.
> Du findest die linuxthreads Bibliothek unter:
> 
>     http://pauillac.inria.fr/~xleroy/linuxthreads/index.html
> 
> Diese Bibliothek benutzt den clone() Systemcall, so dass die
> Prioritaeten der Threads systemweit gelten.

Sehr richtig!
Und echt gut wird die Angelegenheit auf einem System, das die glibc
(libc6) benutzt.
Z.B. Red Hat 5.0 (Ohne hier Werbung machen zu wollen...)
Dort gibt es dann auch keine Abstürze mehr.
Die genannte Bibliothek ist auch in (fast) allen Belangen
Posix-kompatibel, naja,
zumindest in den wichtigen.
Laut Xavier Leroy fehlt im Linux-Kernel ausreichende Unterstützung fürs
multi threading.

PROBLEM: Mann kann jedoch mit dem gdb nur den Haupt-Thread eines
Prozesses debuggen,
alle anderen Threads werden nicht erkannt. Eine Ausnahme in einem der
anderen Threads
führt zum Programmabbruch ohne Meldung, bzw. im gdb wird die Stelle im
Code als
Fehlerverursacher angezeigt, an der zu dem eigentlich
fehlerverursachenden Thread umgeschaltet
wurde.
Um gdb benutzen zu können, muß man *vor* dem Start des Programms in der
gdb-Kommandozeile

  handle SIGUSR1 nostop noprint pass
  handle SIGUSR2 nostop noprint pass

eingeben, weil diese Signale von LinuxThreads benutzt werden.

Alles in allem sehr ungenügend und umständlich.
Gibt es denn keinen vernünftigen Debugger unter Linux??


Mathias

-- 
  Das Schicksal verdammt die Untätigen.

     - Rainer Fuhrmann -





Mehr Informationen über die Mailingliste linux-l