構造体、f90 構造型およびポインタを dbx で表示できます。
demo% f90 -o debstr -g DebStruct.f90
demo% dbx debstr
debstr の読み込み中
ld.so.1 の読み込み中
......
(dbx) list 1,$ (注 1)
1 Program DebStruPtr ! Debug a Structure & pointer
2 TYPE product
3 INTEGER id
4 CHARACTER*16 name
5 CHARACTER*8 model
6 REAL cost
7 REAL price
8 END TYPE product
9
10 TYPE(product), TARGET :: prod1, prod2 (注 2)
11 TYPE(product), POINTER :: curr, prior (注 3)
12
13 curr => prod2 (注 4)
14 prior => prod1 (注 5)
15 prior%id = 82 (注 6)
16 prior%name = "Coffe Cup"
17 prior%model = "XL"
18 prior%cost = 24.0
19 prior%price = 104.0
20 curr = prior (注 7)
21 WRITE (*, *) curr%name, " ", prior%name (注 8)
22 END PROGRAM DebStruPtr
23
(dbx) stop at 21
(2) stop at "DebStruct.f90":21
(dbx) run
実行中: debstr
(dbx) run
実行中: debstr
(プロセス id 23726)
MAIN で停止しました 行番号 21 ファイル "DebStruct.f90"
21 WRITE (*, *) curr%name, " ", prior%name
(dbx) print prod1
prod1 = (
id = 82
name = "Coffe Cup "
model = "XL "
cost = 24.0
price = 104.0
)
注 1: 構造型を宣言します。
注 2: prod1 および prod2 ターゲットを宣言します。(#10)
注 3: curr および prior ポインタを宣言します。(#11)
注 4: curr が prod2 を指すようにします。(#13)
注 5: prior が prod1 を指すようにします。(#14
注 6: prior を初期化します。(#15
注 7: curr を prior に設定します。(#20)
注 8: curr および prior から名前を印刷します。(#21)
上記において dbx は、構造型のすべての要素を表示します。
構造体を使用して、f90 構造型の項目について照会できます。
(dbx) whatis prod1 (注 1)
product prod1
(dbx) whatis -t product (注 2)
type product
INTEGER*4 id
character*16 name
character*8 model
REAL*4 cost
REAL*4 price
end type product
注 1: 変数について尋ねます。
注 2: 型 (-t) について尋ねます。
(dbx) print prior (注 1)
prior = (
id = 82
name = "Coffe Cup "
model = "XL "
cost = 24.0
price = 104.0
)
注 1: dbx は、アドレスであるポインタの内容を表示します。このアドレスは、実行のたびに異 なる場合があります。