簡體   English   中英

使用 frame-c 切片

[英]Slicing using frama-c

我正在使用frama-c來做一些關於程序切片的實驗。 該工具很棒,並且有很多不同類型的切片(例如,按結果或按語句)。 我正在使用程序數據結構,如:

typedef struct ComplexData {
    int x;
    int y;
    char string_[100];
    size_t n;
} ComplexData;

這只是一個示例,用於了解frama-c如何根據函數產生的結果對程序進行切片。 基本上, main方法調用一個函數,該函數返回一個ComplexData類型的值。 不同執行之間的比較是如何進行的? 對結構的每個值進行檢查? 這樣

Frama-C 的選項-slice-return f指示切片器保留所有有助於計算f返回碼的語句。 對於您的類型ComplexData ,這意味着任何字段的內容。 任何計算例如ystring_的字符的string_都將被保留。

關於不同執行之間的比較,靜態切片器的實際工作方式不同。 它們在所有可能的執行中近似每個函數的行為。 (在 Frama-C 的情況下,這是使用一種稱為抽象解釋的技術來完成的。)因此,無需比較兩次執行。

暫無
暫無

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

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