Db.Value.AfterTable.find api 更改为 Frama-C 铝

Db.Value.AfterTable.find api change for Frama-C Aluminium

我正在尝试将 Frama-C Fluorine 版本的插件迁移到 Frama-C Aluminium。这样做时,我找不到函数 Db.Value.AfterTable.find 的合适替代品,我找到的最接近的是 Db.Value.AfterTable_By_Callstack.find。但是,该功能现在 returns 不同类型,即 Db.Value.AfterTable_By_Callstack.data = Db.Value.state Value_types.Callstack.Hashtbl.t,而不是 Frama-C Fluorine 中的 Db.Value.state。谁能帮我解决这个问题?

非常感谢, 特鲁克

的确,现在的信息更加准确了。但是您可以通过调用堆栈加入状态来计算状态:

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