【问题标题】:Frama-C Plugin-Development: Getting the values of value analysis of different callsFrama-C Plugin-Development:获取不同调用的值分析值
【发布时间】:2016-03-24 17:06:01
【问题描述】:

我正在开发一个 Frama-C-Plugin,它应该在每个语句之后打印变量的值。 在 Frama-C-Gui 的值选项卡中,我可以看到整个程序的分析值,以及在不同的函数调用之后(使用函数的参数)。

我现在想在每个函数调用之后获取值(不是“all”行,而是“main”行。

这是我用于截图的程序:

void swap (int *a, int *b){
    int tmp = *a;
    *a = *b;
    *b = tmp;
    return;
}
int main (void){
    int a=1;
    int b=2;
    swap (&a, &b);

    a = 3;
    b = 4;
    swap (&a, &b);
}

这可能吗? 如何访问这些值?

PS:我问了一个相关问题,它已经打印了“全部”部分(以及语句之前的值),请参阅此链接: Frama-C Plugin development: Getting result of value-analysis

有没有类似的解决方案?

【问题讨论】:

  • 我相信我可能已经在您的其他问题中回答了这个问题。如果是这样,可能值得关闭这个(尽管我建议将屏幕截图添加到另一个问题中,并添加诸如“......就像 GUI 所做的那样,就像在这个面板中一样”之类的评论,因为拥有它通常很高兴一些图片作为例子)。
  • 顺便说一句,理想情况下,通过查看源代码(在本例中为src/plugins/value/gui_eval.ml),应该可以推断出至少部分代码(例如,在本例中为Db.Value.get_stmt_state_callstack ,用于第 231 和 235 行),但我同意这样做通常太麻烦。尽管如此,还是值得记住这一点,因为它可以提供一些关于在 API 中搜索哪些函数的提示。

标签: ocaml frama-c value-analysis


【解决方案1】:

感谢对上述问题答案的编辑,可以在以下站点找到解决方案: Frama-C Plugin development: Getting result of value-analysis

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    相关资源
    最近更新 更多