<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>State (infer.Biabduction.State)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">infer</a> » <a href="../index.html">Biabduction</a> » State</nav><h1>Module <code>Biabduction.State</code></h1></header><aside><p>State of symbolic execution</p></aside><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>Internal state</p></dd></dl><dl><dt class="spec value" id="val-add_diverging_states"><a href="#val-add_diverging_states" class="anchor"></a><code><span class="keyword">val</span> add_diverging_states : <a href="../Paths/PathSet/index.html#type-t">Paths.PathSet.t</a> <span>-></span> unit</code></dt><dd><p>Add diverging states</p></dd></dl><dl><dt class="spec value" id="val-get_diverging_states_node"><a href="#val-get_diverging_states_node" class="anchor"></a><code><span class="keyword">val</span> get_diverging_states_node : unit <span>-></span> <a href="../Paths/PathSet/index.html#type-t">Paths.PathSet.t</a></code></dt><dd><p>Get the diverging states for the node</p></dd></dl><dl><dt class="spec value" id="val-get_diverging_states_proc"><a href="#val-get_diverging_states_proc" class="anchor"></a><code><span class="keyword">val</span> get_diverging_states_proc : unit <span>-></span> <a href="../Paths/PathSet/index.html#type-t">Paths.PathSet.t</a></code></dt><dd><p>Get the diverging states for the procedure</p></dd></dl><dl><dt class="spec value" id="val-get_inst_update"><a href="#val-get_inst_update" class="anchor"></a><code><span class="keyword">val</span> get_inst_update : <a href="../../IR/PredSymb/index.html#type-path_pos">IR.PredSymb.path_pos</a> <span>-></span> <a href="../Predicates/index.html#type-inst">Predicates.inst</a></code></dt><dd><p>Get update instrumentation for the current loc</p></dd></dl><dl><dt class="spec value" id="val-get_loc_trace"><a href="#val-get_loc_trace" class="anchor"></a><code><span class="keyword">val</span> get_loc_trace : unit <span>-></span> <a href="../../Absint/Errlog/index.html#type-loc_trace">Absint.Errlog.loc_trace</a></code></dt><dd><p>Get the location trace of the last path seen in symbolic execution</p></dd></dl><dl><dt class="spec value" id="val-get_normalized_pre"><a href="#val-get_normalized_pre" class="anchor"></a><code><span class="keyword">val</span> get_normalized_pre : <span>(<a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>-></span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>-></span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span>)</span> <span>-></span> <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> option</span></code></dt><dd><p>return the normalized precondition extracted form the last prop seen, if any the abstraction function is a parameter to get around module dependencies</p></dd></dl><dl><dt class="spec value" id="val-get_path"><a href="#val-get_path" class="anchor"></a><code><span class="keyword">val</span> get_path : unit <span>-></span> <a href="../Paths/Path/index.html#type-t">Paths.Path.t</a> * <span><a href="../../IR/PredSymb/index.html#type-path_pos">IR.PredSymb.path_pos</a> option</span></code></dt><dd><p>Get last path seen in symbolic execution</p></dd></dl><dl><dt class="spec value" id="val-get_path_pos"><a href="#val-get_path_pos" class="anchor"></a><code><span class="keyword">val</span> get_path_pos : unit <span>-></span> <a href="../../IR/PredSymb/index.html#type-path_pos">IR.PredSymb.path_pos</a></code></dt><dd><p>Get the last path position seen in symbolic execution</p></dd></dl><dl><dt class="spec value" id="val-get_prop_tenv_pdesc"><a href="#val-get_prop_tenv_pdesc" class="anchor"></a><code><span class="keyword">val</span> get_prop_tenv_pdesc : unit <span>-></span> <span><span>(<span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> * <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> * <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a>)</span> option</span></code></dt><dd><p>Get last last prop,tenv,pdesc seen in symbolic execution</p></dd></dl><dl><dt class="spec value" id="val-mark_execution_end"><a href="#val-mark_execution_end" class="anchor"></a><code><span class="keyword">val</span> mark_execution_end : <a href="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a> <span>-></span> unit</code></dt><dd><p>Mark the end of symbolic execution of a node</p></dd></dl><dl><dt class="spec value" id="val-mark_execution_start"><a href="#val-mark_execution_start" class="anchor"></a><code><span class="keyword">val</span> mark_execution_start : <a href="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a> <span>-></span> unit</code></dt><dd><p>Mark the start of symbolic execution of a node</p></dd></dl><dl><dt class="spec value" id="val-mark_instr_fail"><a href="#val-mark_instr_fail" class="anchor"></a><code><span class="keyword">val</span> mark_instr_fail : exn <span>-></span> unit</code></dt><dd><p>Mark that the execution of the current instruction failed</p></dd></dl><dl><dt class="spec value" id="val-mark_instr_ok"><a href="#val-mark_instr_ok" class="anchor"></a><code><span class="keyword">val</span> mark_instr_ok : unit <span>-></span> unit</code></dt><dd><p>Mark that the execution of the current instruction was OK</p></dd></dl><dl><dt class="spec value" id="val-mk_find_duplicate_nodes"><a href="#val-mk_find_duplicate_nodes" class="anchor"></a><code><span class="keyword">val</span> mk_find_duplicate_nodes : <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> <a href="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a> <span>-></span> <a href="../../IR__Procdesc/index.html#module-NodeSet">IR.Procdesc.NodeSet</a>.t</code></dt><dd><p>Create a function to find duplicate nodes. A node is a duplicate of another one if they have the same kind and location and normalized (w.r.t. renaming of let - bound ids) list of instructions.</p></dd></dl><dl><dt class="spec type" id="type-log_issue"><a href="#type-log_issue" class="anchor"></a><code><span class="keyword">type</span> log_issue</code><code> = <span>?⁠node:<a href="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a></span> <span>-></span> <span>?⁠loc:<a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></span> <span>-></span> <span>?⁠ltr:<a href="../../Absint/Errlog/index.html#type-loc_trace">Absint.Errlog.loc_trace</a></span> <span>-></span> exn <span>-></span> unit</code></dt></dl><dl><dt class="spec value" id="val-process_execution_failures"><a href="#val-process_execution_failures" class="anchor"></a><code><span class="keyword">val</span> process_execution_failures : <a href="index.html#type-log_issue">log_issue</a> <span>-></span> unit</code></dt><dd><p>Process the failures during symbolic execution of a procedure</p></dd></dl><dl><dt class="spec value" id="val-reset"><a href="#val-reset" class="anchor"></a><code><span class="keyword">val</span> reset : unit <span>-></span> unit</code></dt><dd><p>Reset all the global data.</p></dd></dl><dl><dt class="spec value" id="val-reset_diverging_states_node"><a href="#val-reset_diverging_states_node" class="anchor"></a><code><span class="keyword">val</span> reset_diverging_states_node : unit <span>-></span> unit</code></dt><dd><p>Reset the diverging states information for the node</p></dd></dl><dl><dt class="spec value" id="val-restore_state"><a href="#val-restore_state" class="anchor"></a><code><span class="keyword">val</span> restore_state : <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Restore the old state.</p></dd></dl><dl><dt class="spec value" id="val-save_state"><a href="#val-save_state" class="anchor"></a><code><span class="keyword">val</span> save_state : unit <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Return the old state, and revert the current state to the initial one.</p></dd></dl><dl><dt class="spec value" id="val-set_path"><a href="#val-set_path" class="anchor"></a><code><span class="keyword">val</span> set_path : <a href="../Paths/Path/index.html#type-t">Paths.Path.t</a> <span>-></span> <span><a href="../../IR/PredSymb/index.html#type-path_pos">IR.PredSymb.path_pos</a> option</span> <span>-></span> unit</code></dt><dd><p>Get last path seen in symbolic execution</p></dd></dl><dl><dt class="spec value" id="val-set_prop_tenv_pdesc"><a href="#val-set_prop_tenv_pdesc" class="anchor"></a><code><span class="keyword">val</span> set_prop_tenv_pdesc : <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>-></span> <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>-></span> <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> unit</code></dt><dd><p>Set last prop,tenv,pdesc seen in symbolic execution</p></dd></dl></div></body></html>