2016-04-03 5 views
1

Debuggen eines C++ - basierten Programms (XYZ), das unbegrenzt läuft, indem auf einen Socket zuhören und die Daten verarbeiten. Ich benutzte ein Testprogramm, das aus einer Liste von Testdateien las und Dateidaten über den Socket an das C++ basierte Programm schickte.gdb eine Datei erstellen, wenn die Anwendung unter Debugging abstürzt

Das Problem ist, dass XYZ irgendwo während des Tests abstürzen wird. Ich benutzte gdb, um XYZ zu laufen, möchte gdb, um eine kleine Akte zu verursachen, wenn XYZ abstürzt. Auf diese Weise kann das Testprogramm das Vorhandensein der Datei prüfen lassen, um zu entscheiden, ob es beendet werden soll.

gdb ./XYZ 
.... 
would like it to create a file when XYZ crashes. 

Irgendwelche Ideen?

Antwort

2

Dies sollte das tun, was Sie gefragt:

gdb -ex 'shell rm /tmp/XYZ-crashed' \ 
    -ex 'run' -ex 'shell touch /tmp/XYZ-crashed' -ex 'quit' ./XYZ 
+0

Vielen Dank @ verwendet-russisch! – packetie