<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>PulseDiagnostic (infer.Pulselib.PulseDiagnostic)</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">Pulselib</a> » PulseDiagnostic</nav><h1>Module <code>Pulselib.PulseDiagnostic</code></h1></header><div class="spec module" id="module-CallEvent"><a href="#module-CallEvent" class="anchor"></a><code><span class="keyword">module</span> CallEvent = <a href="../index.html#module-PulseCallEvent">PulseCallEvent</a></code></div><div class="spec module" id="module-Invalidation"><a href="#module-Invalidation" class="anchor"></a><code><span class="keyword">module</span> Invalidation = <a href="../index.html#module-PulseInvalidation">PulseInvalidation</a></code></div><div class="spec module" id="module-Trace"><a href="#module-Trace" class="anchor"></a><code><span class="keyword">module</span> Trace = <a href="../index.html#module-PulseTrace">PulseTrace</a></code></div><div class="spec module" id="module-ValueHistory"><a href="#module-ValueHistory" class="anchor"></a><code><span class="keyword">module</span> ValueHistory = <a href="../index.html#module-PulseValueHistory">PulseValueHistory</a></code></div><dl><dt class="spec type" id="type-access_to_invalid_address"><a href="#type-access_to_invalid_address" class="anchor"></a><code><span class="keyword">type</span> access_to_invalid_address</code><code> = </code><code>{</code><table class="record"><tr id="type-access_to_invalid_address.calling_context" class="anchored"><td class="def field"><a href="#type-access_to_invalid_address.calling_context" class="anchor"></a><code>calling_context : <span><span>(<a href="../PulseCallEvent/index.html#type-t">CallEvent.t</a> * <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a>)</span> list</span>;</code></td><td class="doc"><p>the list of function calls leading to the issue being realised, which is an additional common prefix to the traces in the record</p></td></tr><tr id="type-access_to_invalid_address.invalidation" class="anchored"><td class="def field"><a href="#type-access_to_invalid_address.invalidation" class="anchor"></a><code>invalidation : <a href="../PulseInvalidation/index.html#type-t">Invalidation.t</a>;</code></td></tr><tr id="type-access_to_invalid_address.invalidation_trace" class="anchored"><td class="def field"><a href="#type-access_to_invalid_address.invalidation_trace" class="anchor"></a><code>invalidation_trace : <a href="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td><td class="doc"><p>assuming we are in the calling context, the trace leads to <code>invalidation</code> without further assumptions</p></td></tr><tr id="type-access_to_invalid_address.access_trace" class="anchored"><td class="def field"><a href="#type-access_to_invalid_address.access_trace" class="anchor"></a><code>access_trace : <a href="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td><td class="doc"><p>assuming we are in the calling context, the trace leads to an access to the value invalidated in <code>invalidation_trace</code> without further assumptions</p></td></tr></table><code>}</code></dt></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare_access_to_invalid_address"><a href="#val-compare_access_to_invalid_address" class="anchor"></a><code><span class="keyword">val</span> compare_access_to_invalid_address : <a href="index.html#type-access_to_invalid_address">access_to_invalid_address</a> <span>-></span> <a href="index.html#type-access_to_invalid_address">access_to_invalid_address</a> <span>-></span> int</code></dt><dt class="spec value" id="val-equal_access_to_invalid_address"><a href="#val-equal_access_to_invalid_address" class="anchor"></a><code><span class="keyword">val</span> equal_access_to_invalid_address : <a href="index.html#type-access_to_invalid_address">access_to_invalid_address</a> <span>-></span> <a href="index.html#type-access_to_invalid_address">access_to_invalid_address</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-yojson_of_access_to_invalid_address"><a href="#val-yojson_of_access_to_invalid_address" class="anchor"></a><code><span class="keyword">val</span> yojson_of_access_to_invalid_address : <a href="index.html#type-access_to_invalid_address">access_to_invalid_address</a> <span>-></span> Ppx_yojson_conv_lib.Yojson.Safe.t</code></dt></dl></div></div></div><dl><dt class="spec type" id="type-read_uninitialized_value"><a href="#type-read_uninitialized_value" class="anchor"></a><code><span class="keyword">type</span> read_uninitialized_value</code><code> = </code><code>{</code><table class="record"><tr id="type-read_uninitialized_value.calling_context" class="anchored"><td class="def field"><a href="#type-read_uninitialized_value.calling_context" class="anchor"></a><code>calling_context : <span><span>(<a href="../PulseCallEvent/index.html#type-t">CallEvent.t</a> * <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a>)</span> list</span>;</code></td><td class="doc"><p>the list of function calls leading to the issue being realised, which is an additional common prefix to the traces in the record</p></td></tr><tr id="type-read_uninitialized_value.trace" class="anchored"><td class="def field"><a href="#type-read_uninitialized_value.trace" class="anchor"></a><code>trace : <a href="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td><td class="doc"><p>assuming we are in the calling context, the trace leads to read of the uninitialized value</p></td></tr></table><code>}</code></dt></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare_read_uninitialized_value"><a href="#val-compare_read_uninitialized_value" class="anchor"></a><code><span class="keyword">val</span> compare_read_uninitialized_value : <a href="index.html#type-read_uninitialized_value">read_uninitialized_value</a> <span>-></span> <a href="index.html#type-read_uninitialized_value">read_uninitialized_value</a> <span>-></span> int</code></dt><dt class="spec value" id="val-equal_read_uninitialized_value"><a href="#val-equal_read_uninitialized_value" class="anchor"></a><code><span class="keyword">val</span> equal_read_uninitialized_value : <a href="index.html#type-read_uninitialized_value">read_uninitialized_value</a> <span>-></span> <a href="index.html#type-read_uninitialized_value">read_uninitialized_value</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-yojson_of_read_uninitialized_value"><a href="#val-yojson_of_read_uninitialized_value" class="anchor"></a><code><span class="keyword">val</span> yojson_of_read_uninitialized_value : <a href="index.html#type-read_uninitialized_value">read_uninitialized_value</a> <span>-></span> Ppx_yojson_conv_lib.Yojson.Safe.t</code></dt></dl></div></div></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.AccessToInvalidAddress" class="anchored"><td class="def constructor"><a href="#type-t.AccessToInvalidAddress" class="anchor"></a><code>| </code><code><span class="constructor">AccessToInvalidAddress</span> <span class="keyword">of</span> <a href="index.html#type-access_to_invalid_address">access_to_invalid_address</a></code></td></tr><tr id="type-t.MemoryLeak" class="anchored"><td class="def constructor"><a href="#type-t.MemoryLeak" class="anchor"></a><code>| </code><code><span class="constructor">MemoryLeak</span> <span class="keyword">of</span> </code><code>{</code><table class="record"><tr id="type-t.procname" class="anchored"><td class="def field"><a href="#type-t.procname" class="anchor"></a><code>procname : <a href="../../IR/Procname/index.html#type-t">IR.Procname.t</a>;</code></td></tr><tr id="type-t.allocation_trace" class="anchored"><td class="def field"><a href="#type-t.allocation_trace" class="anchor"></a><code>allocation_trace : <a href="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td></tr><tr id="type-t.location" class="anchored"><td class="def field"><a href="#type-t.location" class="anchor"></a><code>location : <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td></tr></table><code>}</code></td></tr><tr id="type-t.ReadUninitializedValue" class="anchored"><td class="def constructor"><a href="#type-t.ReadUninitializedValue" class="anchor"></a><code>| </code><code><span class="constructor">ReadUninitializedValue</span> <span class="keyword">of</span> <a href="index.html#type-read_uninitialized_value">read_uninitialized_value</a></code></td></tr><tr id="type-t.StackVariableAddressEscape" class="anchored"><td class="def constructor"><a href="#type-t.StackVariableAddressEscape" class="anchor"></a><code>| </code><code><span class="constructor">StackVariableAddressEscape</span> <span class="keyword">of</span> </code><code>{</code><table class="record"><tr id="type-t.variable" class="anchored"><td class="def field"><a href="#type-t.variable" class="anchor"></a><code>variable : <a href="../../IR/Var/index.html#type-t">IR.Var.t</a>;</code></td></tr><tr id="type-t.history" class="anchored"><td class="def field"><a href="#type-t.history" class="anchor"></a><code>history : <a href="../PulseValueHistory/index.html#type-t">ValueHistory.t</a>;</code></td></tr><tr id="type-t.location" class="anchored"><td class="def field"><a href="#type-t.location" class="anchor"></a><code>location : <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td></tr></table><code>}</code></td></tr></table></dt><dd><p>an error to report to the user</p></dd></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt></dl></div></div></div><dl><dt class="spec value" id="val-get_message"><a href="#val-get_message" class="anchor"></a><code><span class="keyword">val</span> get_message : <a href="index.html#type-t">t</a> <span>-></span> string</code></dt><dt class="spec value" id="val-get_location"><a href="#val-get_location" class="anchor"></a><code><span class="keyword">val</span> get_location : <a href="index.html#type-t">t</a> <span>-></span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dt class="spec value" id="val-get_issue_type"><a href="#val-get_issue_type" class="anchor"></a><code><span class="keyword">val</span> get_issue_type : <a href="index.html#type-t">t</a> <span>-></span> <a href="../../IBase/IssueType/index.html#type-t">IBase.IssueType.t</a></code></dt><dt class="spec value" id="val-get_trace"><a href="#val-get_trace" class="anchor"></a><code><span class="keyword">val</span> get_trace : <a href="index.html#type-t">t</a> <span>-></span> <a href="../../Absint/Errlog/index.html#type-loc_trace">Absint.Errlog.loc_trace</a></code></dt></dl></div></body></html>