構造体、Fortran 95 構造型およびポインタを dbx で表示できます。
demo% f95 -o debstr -g DebStruc.f95
demo% dbx debstr
(dbx) stop in main
(2) stop in main
(dbx) list 1,99
1 PROGRAM DebStruPtr! Debug structures & pointers
構造型を宣言します。
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
prod1 および prod2 ターゲットを宣言します。
10 TYPE(product), TARGET :: prod1, prod2
curr および prior ポインタを宣言します。
11 TYPE(product), POINTER :: curr, prior
12
curr が prod2 を指すようにします。
13 curr => prod2
prior が prod1 を指すようにします。
14 prior => prod1
prior を初期化します。
15 prior%id = 82
16 prior%name = "Coffee Cup"
17 prior%model = "XL"
18 prior%cost = 24.0
19 prior%price = 104.0
curr を prior に設定します。
20 curr = prior
curr および prior から名前を出力します。
21 WRITE ( *, * ) curr%name, " ", prior%name
22 END PROGRAM DebStruPtr
(dbx) stop at 21
(1) stop at "DebStruc.f95":21
(dbx) run
実行中: debstr
(プロセス id 10972)
MAIN で停止しました 行番号 21 ファイル "DebStruct.f95"
21 WRITE ( *, * ) curr%name, " ", prior%name
(dbx) print prod1
prod1 = (
id = 82
name = "Coffee Cup"
model = "XL"
cost = 24.0
price = 104.0
)
|
前述において dbx は、構造型のすべての要素を表示します。
構造体を使用して、Fortran 95 構造型の項目について照会できます。
変数について尋ねます。
(dbx) whatis prod1
product prod1
型 (-t) について尋ねます。
(dbx) whatis -t product
type product
integer*4 id
character*16 name
character*8 model
real cost
real price
end type product
|
dbx は、アドレスであるポインタの内容を表示します。このアドレスは、実行のたび
に異なる場合があります。
(dbx) print prior
prior = (
id = 82
name = 'Coffee Cup'
model = 'XL'
cost = 24.0
price = 104.0
)
|