2017-03-31 2 views
0

Ich versuche, eine Anwendung mithilfe des Debuggers debuggen. Diese Anwendung hat einige spezifische Umgebungsanforderungen. Bevor ich gdb starte, richte ich die Umgebung so ein, wie ich will, dann öffne ich gdb.Wie kann ich verhindern, dass gdb ".cshrc" liest?

Auf den ersten Blick sieht alles gut aus. Der Befehl show environment zeigt alle Variablen, die ich will, aber wenn ich den run Befehl verwende, werden sie magisch zurückgesetzt!

Ich habe etwas gegraben und herausgefunden, dass gdb automatisch die Datei .cshrc aufruft und alle Umgebungsvariablen neu lädt, aber es scheint keine Möglichkeit zu geben, sie zu stoppen! Wie kann ich das verhindern?

Gibt es eine Möglichkeit, innerhalb der .cshrc Datei zu überprüfen, wenn es von gdb aufgerufen wird und es überspringen? Ich habe seit Tagen damit zu kämpfen und es ist unglaublich irritierend.

+1

Sie irren sich: GDB liest Ihre '~/.cshrc' nicht - Ihre' $ SHELL' tut es. Und es ist die richtige Antwort, zu verhindern, dass Ihre Shell mit der Umgebung muckelt, wenn sie nicht interaktiv abläuft. –

Antwort

0

Bis jetzt habe ich eine Lösung gefunden, aber ich bin mir nicht sicher, ob das andere Dinge auf dem Server noch brechen wird.

Ich habe den folgenden Code den die .cshrc Datei und jetzt bricht es, wenn es von gdb aufgerufen:

if (! $?prompt) then 
    exit 
endif 

Dieser Code teilt es im Grunde um den Vorgang abzubrechen, wenn sie durch etwas anderes als eine interaktive Shell aufgerufen werden . Es funktioniert vorerst, aber ich habe das Gefühl, dass ich herausfinden kann, dass das in Zukunft etwas anderes bricht.

Verwandte Themen