Fortran: Anhang C
<< zur Fortran-Startseite | |
< Anhang B: Anwendungsbeispiele | Anhang D: Quellcodedokumentation > |
Werden Programme länger und komplexer, so kann der Einsatz eines Debuggers das Auffinden von logischen Fehlern erleichtern.
Der GNU Debugger
BearbeitenDer gdb (GNU Debugger) wird besonders im Open Source-Bereich im Zusammenspiel mit der GCC verwendet. Die Anwendung im Zusammenhang mit gfortran-compilierten Programmen ist relativ einfach, wenn auch nicht so problemlos wie bei C- oder C++-Programmen.
gdb und gfortran
BearbeitenDas Programm muss mit dem Optionsschalter -g
erstellt werden. gfortran kennt noch andere erweiterte Optionen, die spezialisiertere Ergebnisse liefern. Für einfache Beispiele wie sie in diesem Buch vorzufinden sind reicht aber die -g
-Option vollkommen aus.
- gfortran -g -o bsp bsp.f90
Aufruf des Debuggers mittels
- gdb bsp
Zu beachten ist, dass nach dem Start des Debuggers ein Breakpoint
- b MAIN__
gesetzt wird, ansonsten findet der Debugger das zu debuggende Fortran-Programm nicht. Danach wird der Debuggerlauf mit
- run
gestartet.
Einige wichtige gdb-Befehle:
b <zahl> |
Breakpoint in der Zeile <zahl> setzen
|
list |
Codelisting |
next |
Zur nächsten Zeile springen |
step |
Sprung in eine Subroutine |
print <var> |
Gibt den Wert der Variablen <var> aus
|
c |
Das Programm fortsetzen (continue) |
until <zahl> |
Programm bis zur Zeile <zahl> ausführen
|
quit |
Debugger beenden |
gdb und g95
BearbeitenDas Debuggen von g95-compilierten Programmen funktioniert beinahe identisch zur Vorgehensweise mit gfortran. Allerdings ist zu beachten, dass ein Breakpoint
- b MAIN_
(nur mit einem Unterstrich) vor dem run
-Befehl gesetzt wird.
Der Intel Debugger
BearbeitenDie Firma Intel liefert bei ihren Fortran- und C++-Compilern den Kommandozeilendebugger idb mit.
Gestartet wird der Intel-Debugger mittels
- idb -gdb bsp
Der Debugger befindet sich dann im gdb-Modus. Wird der idb ohne -gdb
-Schalter aufgerufen, so wird er im dbx-Modus gestartet. Prinzipiell ist es ziemlich egal, in welchem Modus debugged wird. Die Befehlsbezeichungen und der Befehlsumfang unterscheiden sich etwas. Vor dem run
sollte ein Breakpoint gesetzt werden. Das allerdings ganz normal mit Angabe einer Zeilennummer.
<< zur Fortran-Startseite | |
< Anhang B: Anwendungsbeispiele | Anhang D: Quellcodedokumentation > |