Folgende Compileroptionen sind für das Debugging von Programmen von Bedeutung, die mit COBOL für AIX und PL/I für AIX geschrieben wurden:
| Compileroption | Definition |
|---|---|
| -g | Fordert den Compiler auf, Debuginformationen für den Quellcode zu generieren. Sie müssen diese Option angeben, wenn Sie für Ihren Code ein Debug ausführen möchten. |
| -qtest | Fordert den Compiler auf, Debugsymbolinformationen für den Quellcode zu generieren. Sie
müssen diese Option angeben, wenn Sie Variablen in Ihrem Code anzeigen und ändern möchten. Die Angabe von -qtest impliziert auch -g, wodurch neben Zeileninformationen auch Symbolinformationen generiert werden. Anmerkung: Die Compileroption -qtest ist nur für das Debugging von PL/I für
AIX-Programmen relevant.
|
Diese Compileroptionen sind von Bedeutung für das Debugging von Programmen, die mit IBM XL C/C++ für AIX und IBM XL C/C++ für Linux geschrieben wurden. Sie sind nicht von Bedeutung für Programme, die mit COBOL für AIX und PL/I für AIX geschrieben wurden.
| Compileroption | Definition |
|---|---|
| -g | -g fordert den Compiler auf, Debuginformationen für den Quellcode zu generieren. Sie müssen diese Option angeben, wenn Sie für Ihren Code ein Debug ausführen möchten. Der Compiler unterstützt möglicherweise auch die folgenden erweiterten Stufen von -g, um die ausführbare Größe zu verringern oder die Anwendungsleistung zu verbessern (besonders in Kombination mit der Option -O2), während eine gewisse Stufe der Debugfähigkeit beibehalten wird: -g9 stellt Funktionalität von -g bereit. Änderungen an Variablenwerten durch den Debugger werden in den Speicher geschrieben und alle ausführbaren Zeilen können vom Debugger schrittweise durchlaufen werden. -g8 verringert den Umfang der Debuginformationen für Variablen. Änderungen an Variablenwerten durch den Debugger werden möglicherweise nicht in den Speicher zurückgeschrieben. Alle ausführbaren Zeilen können vom Debugger schrittweise durchlaufen werden. -g5 verringert den Umfang der Debuginformationen für Variablen. Änderungen an Variablenwerten durch den Debugger werden möglicherweise nicht in den Anwendungsspeicher zurückgeschrieben. Mit der Option -g5 wird auch der Umfang der Debuginformationen verringert, die für ausführbare Zeilen gespeichert werden. Nur die erste ausführbare Zeile jeder Funktion und ausgewählte Steuerungsablaufanweisungen können vom Debugger schrittweise durchlaufen werden. Andere Zeilen erscheinen als 'nicht ausführbar' und der Debugger kann die Zeilen nicht schrittweise durchlaufen. |
| -qfullpath | Bewirkt, dass der vollständige Name aller Quellendateien den Debuginformationen hinzugefügt wird. Dies kann dem Debugger das Suchen von Quellendateien erleichtern. |
| -qheapdebug | Zwingt das resultierende Programm zur Verwendung
des Debug-Heap-Speichers. Wenn eine Heapspeicherbeschädigung auftritt, kann sie der Debugger
feststellen und er kann an dem Punkt stoppen, an dem sie festgestellt wurde. Anmerkung: Diese Option wird nur unter AIX unterstützt.
|
| -qlinedebug | Unterdrückt die Generierung von Debuginformationen, die es Ihnen ermöglichen, Variablen in Ihrem Code zu sehen. Dies kann die Größe der resultierenden ausführbaren Datei erheblich reduzieren, insbesondere bei C++-Programmen. Diese Option wird empfohlen für den Fall, dass Sie Ihren Code optimiert haben, da es die Optimierung dem Debugger unmöglich macht, Variablenwerte verlässlich anzuzeigen. |
| -qtbtable | Steuert die Generierung einer Traceback-Tabelle am Ende aller Funktionen. Die Angabe von -qtbtable=none ist nicht empfehlenswert, wenn für den Code ein Debug ausgeführt werden soll. |
| -qdbxextra | Zwingt den Compiler zur Aufnahme von
Debuginformationen für Typen, auf die nicht verwiesen wird. Dies ist
normalerweise nicht empfehlenswert, da es zu einer sehr großen
ausführbaren Datei führt. Anmerkung: Diese Option wird nur unter AIX unterstützt.
|
| -qsmp=noopt | Standardmäßig führt die Option -qsmp zur Durchführung von Optimierungen an den ausgelagerten Funktionen (dem Code in den parallelen Regionen). Diese Optimierungen führen zu einer Diskrepanz zwischen dem Programm und den Debuginformationen, so dass der Debugger bei der Ausführung des ausgelagerten Codes falsche Werte sowohl für private als auch gemeinsam genutzte lokale Variablen anzeigt. Die Verwendung von -qsmp=noopt statt -qsmp inaktiviert diese Optimierungen und erleichtert die Ausführung eines Debugs für die parallelen Regionen. |