簡體   English   中英

在 Frama-c 中進行類型檢查

[英]Type checks in Frama-c

我想知道 Frama-C 是否實現了某種與指針相關的類型檢查。 例如,請考慮以下事項:

int x[10];
void * v = x;

//@ assert isOfTypeInt(x, 10)
//@ assert isOfTypeInt(v, 10) 

在精神上有沒有與上述類似的東西?

查看ACSL手冊,有很多方法可以檢查內存和指針的使用情況(其中部分是在Frama-C Oxygen中實現的)。 不過,我還沒有找到任何處理類型信息的一般支持。 是否有我們可以用於此目的的 frama-c 插件?

謝謝,愛德華多

ACSL中確實沒有這樣的東西。 事實上,C 中的內存位置並沒有真正關聯到它們的類型信息:如果我們忽略潛在的對齊約束,任何 4 字節的塊都可以用來存儲 32 位整數。

也就是說,Frama-C 是一個可擴展的平台,總是可以為特定需求編寫插件。 對於示例中的普通變量(例如x ,可以在 AST 中相應varinfovtype字段中直接訪問聲明的類型。 對於諸如v指針,應該可以利用 Value 的結果來查看它們可能指向的位置並使用它來派生適當的類型信息(主要問題是決定當 Value 不精確並給出幾個潛在位置時應該做什么)不同類型)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM