Fortran: Anhang C

Aus Wikibooks
Wechseln zu: Navigation, Suche
<< 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[Bearbeiten]

Der 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[Bearbeiten]

Das 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[Bearbeiten]

Das 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[Bearbeiten]

Die 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 >