Mit gdb versuche ich, die Funktionsaufrufe eines Web-Servers zu verfolgen. Ich setze Haltepunkte bei jedem Funktionsaufruf und wenn ich gdb rufe 'run', bricht es an den richtigen Stellen, während der Server startet. Dann sagt gdb 'Programm endete mit Code 01' und stoppt nicht mehr (offensichtlich) an Haltepunkten. Der Webserver wird jedoch weiterhin ausgeführt.läuft gdb auf einem Webserver
Ich möchte in der Lage sein, die Funktionsaufrufe auf eine eingehende HTTP-Anfrage zu verfolgen, so dass es einfach nutzlos ist, während des Server-Startvorgangs zu brechen.
Gibt es einen Trick bei der Verwendung von gdb beim Verfolgen eines Daemon-Servers, damit er nicht einfach wie oben endet?
Wenn es sich bei dem betreffenden Webserver um Apache handelt, funktioniert die Einstellung von follow-fork-mode wahrscheinlich * nicht *: Apache gibt standardmäßig mehrere untergeordnete Elemente aus, und Sie wissen nicht, welche eine bestimmte Anfrage verarbeiten soll. Die Einstellung "MaxClients 1" ist wahrscheinlich ebenfalls erforderlich. –