Db.Value.AfterTable.find改变Frama-C铝的api

时间:2016-09-06 16:51:03

标签: frama-c

我正在尝试将Frama-C Fluorine版本的插件迁移到Frama-C Aluminium。这样做时,我找不到函数Db.Value.AfterTable.find的相应替换,我找到的最接近的是Db.Value.AfterTable_By_Callstack.find。但是,该函数现在返回不同的类型,即Db.Value.AfterTable_By_Callstack.data = Db.Value.state Value_types.Callstack.Hashtbl.t,而不是Frama-C Fluorine中的Db.Value.state。有人可以帮我这个吗?

非常感谢, 特吕克

1 个答案:

答案 0 :(得分:4)

实际上,信息现在更加精确。但您可以通过调用堆栈加入状态来计算状态:

let state = Value_callstack.Callstack.Hashtbl.fold
      (fun _cs state acc -> Cvalue.Model.join acc state)
      csh Cvalue.Model.bottom