私はPromela、特にSPINを使用するのが初めてです。私は検証しようとしているモデルを持っており、問題を解決するためにSPINの出力を理解できません。ここでエラー:VECTORSZが小さすぎます
は私がやったことで次のように
spin -a untitled.pml
gcc -o pan pan.c
./pan
出力されました:
pan:1: VECTORSZ is too small, edit pan.h (at depth 0)
pan: wrote untitled.pml.trail
(Spin Version 6.4.5 -- 1 January 2016)
Warning: Search not completed
+ Partial Order Reduction
Full statespace search for:
never claim - (none specified)
assertion violations +
acceptance cycles - (not selected)
invalid end states +
State-vector 8172 byte, depth reached 0, errors: 1
0 states, stored
0 states, matched
0 transitions (= stored+matched)
0 atomic steps
hash conflicts: 0 (resolved)
私はその後、トレイルファイルを調べることによって、問題の原因を特定しようとするために、再度SPINを走りました。 (私はそれを理解したように)この出力によると
using statement merging
spin: trail ends after -4 steps
#processes: 1
(global variable dump omitted)
-4: proc 0 (:init::1) untitled.pml:173 (state 1)
1 process created
、検証は「初期化」の手順の間に失敗している:
spin -t -v -p untitled.pml
これは結果だった:私は、このコマンドを使用していました。 untitled.pmlの中から該当するコードはこれです:私は私にあるため、問題の原因を見当がつかない。この時点で
init {
int count = 0;
int ordinal = N;
do // This is line 173
:: (count < 2 * N + 1) ->
、「やる」文はうまく実行する必要があります。
誰でもSPINの出力を理解するのを手伝ってください。確認プロセス中にこのエラーを取り除くことはできますか?モデルは、参照用に正しい出力を生成します。
ありがとうございました!これは完全に動作します!私はそれをいくつかのオーダーの大きさにしなければならなかったが、最終的に、それは成功しました:) – blackfireize