strace problem



  • Hallo,

    ich hoffe ich bin hier überhaupt richtig, aber die Sucher funzt ja imMo leider nicht 😞

    Ich hab ein Problem mit strace, womit ich ein in C++ geschriebenes Programm debuggen möchte, welches Multithreading verwendet (pthread_create etc)

    Also hab ich es mit dem aufruf
    strace -f -F -ff -T -tt -o /meine/logdatei /pfad/zum/programm
    versucht.

    Er erstellt auch brav für jeden Prozess eine Logdatei, aber nach ein paar Einträgen hört strace bei allen Processen (bis auf zwei) auf zu loggen.
    Die letzten Zeilen in jeder dieser Logfiles sehen so aus:

    20:40:57.861229 nanosleep({0, 1000000}, NULL) = 0 <0.001887>
    20:40:57.863220 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 😎 = 0 <0.000032>
    20:40:57.863325 rt_sigsuspend([]20:40:57.863469 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---

    Wie schaffe ich es, dass strace weiterloggt (denke mal das Signal "32", was auch immer das ist, macht das Problem...)?

    Vielen Dank schon mal.
    Marius



  • Du bist hier im C++-Forum, deine Frage solltest du eher im Linux-Forum stellen.

    Wundert mich, das du noch nicht verschoben wurdest...



  • Wolle. schrieb:

    Wundert mich, das du noch nicht verschoben wurdest...

    Ja. Immer wieder interessant zu sehen, dass dieses faule Moderatorenpack nicht 24/7, rund um die Uhr, Minute für Minute im Forum rumhängt sondern scheinbar nebenbei noch anderen Beschäftigungen nachgeht. Unglaublich.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • HumeSikkins schrieb:

    Ja. Immer wieder interessant zu sehen, dass dieses faule Moderatorenpack nicht 24/7, rund um die Uhr, Minute für Minute im Forum rumhängt sondern scheinbar nebenbei noch anderen Beschäftigungen nachgeht. Unglaublich.

    ja finde ich auch, man sollte den Moderatoren schon verbieten irgendwelchen nebentätigkeiten oder sogar soetwas wie ein Privatleben zu betreiben. 🤡



  • Naja, dachte es wär vielleicht ne C++ Frage, weil das Programm ja in C++ mit Threads programmiert ist und vielleicht muss man ja im Programm die Signale irgendwie ändern... 😉



  • Die Option -ff sollte doch eigentlich mehrere Dateien (filename.pid) anlegen, für jeden Prozess, schau mal ob vielleicht mehrere Dateien auf einmal existieren.

    Ansonsten lass mal eine Option nach der anderen Weg und schau mal ob sich das Verhalten ändert.



  • Die Option -ff legt auch für jeden Prozess eine Datei an.
    Das meinte ich ja, in diesen Dateien stehen dann immer einige Zeilen und am Schluss die zwei/drei oben zitierten Zeilen und dann kommt nichts mehr...

    Habe die Optionen nach und nach hinzugefügt aber ändert sich nichts.
    Immer bei diesem Signal 32 wird der entsprechende Prozess nicht mehr weitergetraced.



  • dumme Frage: was ist denn Signal 32??

    IMHO sind doch nur 1-31 (und 64) definierte Signalwerte und für User gibts doch noch USRx, also wat soll dat denn?



  • Ich glaub 32 - ??? sind für das Threading irgendwie..
    Heissen SIGRTMIN bis SIGRTMAX


Anmelden zum Antworten