problem gdb, fork exec



  • hallo!

    ich habe einen service der eine x-beliebige anzahl von anderen/externen services startet!

    also hier kurz zum überblick:
    main() startet einen thread startforkthread
    startforkstread legt ein objekt an, welches im konstrutor wieder einen threadstartet und dieser thread ruft dann eine funktion auf wo ein vfork gemacht wird und mittels execvp zb. der ping-befehl gestartet wird.

    ich bekomme somit eine liste wo eine menge pings aufgerufen werden.
    das ganze funktioniert total super. nun wollte ich aber das ganze mittels gdb laufen lassen und siehe da der gdb bleibt sofort nach dem ersten vfork bzw. eigentlich beim execvp aufruf stehen 😞

    gibt es dazu eine lösung oder ist das einfach so und ich kann das ganze nicht debuggen? also mir geht es nicht darum, dass ich die vfork sachen debugge, sondern einen anderen code der auch noch aufgerufen wird im service und der auch sporadisch ein segmentation fault erzeugt, aber leider kann ich das ganze nicht im gdb laufen lassen, weil der service im gdb nicht läuft bzw. wie geschildert hängen gleibt.

    danke für eure hilfe! 👍



  • Warum tust du nicht einfach diesen "Service" der den
    Segmentation fault erzeugt debuggen?

    Welcher "Service" bringt eignetlich diesen SegFault,
    du solltest den Entwicklern diesen Bug berichten.



  • dabei gibt es 2 probleme:

    1. problem: ich weiß nicht in welchem weiteren thread der fehler auftritt!
    2. problem ich bin der entwickler 😃

    aber vielleicht habe ich auch mein problem schlecht erklärt.
    es gibt einen von mir entwickelten service wo einige threads laufen, ein thread ruft wie geschildert mittels vfork und execvp den ping befehl testhalber auf und lässt diesen einfach dahin laufen!
    und ein x-beliebiger thread erzeugt einen seg-fault, aber leider kann ich den service nicht mal einfach im gdb laufen lassen, weil sich der gdb bei der vfork&execvp geschichte stehen bleibt ..


Anmelden zum Antworten