実際にスレッド化された C コードを評価するために、frama-c 値アナライザーを試しています。発生する可能性のあるスレッドの問題を無視して、単一のスレッドの可能な値を調べるだけです。これまでのところ、エントリ ポイントをスレッドの開始位置に設定することで機能します。
ここで私の問題: あるスレッド内で、別のスレッドによって書き込まれた値を読み取ります。これは、frama-c がスレッド化を考慮していない (またすべきではない) (現在のところ)、変数が広い範囲にあると想定しているためです。範囲は実際にははるかに小さいです。値アナライザーにこの変数の値の範囲を伝えることは可能ですか?
例:
volatile int x = 0;
void f() {
while(x==0)
sleep(100);
...
}
ここで、frama-c は x が揮発性であり、したがって [--..--] の範囲を持っていることを検出しますが、他のスレッドが x に何を書き込むかを知っているので、アナライザーに x が 0 または 1 しかできないことを伝えたいと考えています。特にGUIで、これはframa-cで可能ですか?
前もってありがとうクリスチャン