14 #ifndef CPROVER_GOTO_PROGRAMS_GOTO_TRACE_H
15 #define CPROVER_GOTO_PROGRAMS_GOTO_TRACE_H
150 std::ostream &out)
const;
179 typedef std::list<goto_trace_stept>
stepst;
190 std::ostream &out)
const;
200 steps.push_back(step);
271 #define OPT_GOTO_TRACE \
272 "(trace-json-extended)" \
273 "(trace-show-function-calls)" \
274 "(trace-show-code)" \
279 #define HELP_GOTO_TRACE \
280 " {y--trace-json-extended} \t add rawLhs property to trace\n" \
281 " {y--trace-show-function-calls} \t show function calls in plain trace\n" \
282 " {y--trace-show-code} \t show original code in plain trace\n" \
283 " {y--trace-hex} \t represent plain trace values in hex\n" \
284 " {y--compact-trace} \t give a compact trace\n" \
285 " {y--stack-trace} \t give a stack trace only\n"
287 #define PARSE_OPTIONS_GOTO_TRACE(cmdline, options) \
288 if(cmdline.isset("trace-json-extended")) \
289 options.set_option("trace-json-extended", true); \
290 if(cmdline.isset("trace-show-function-calls")) \
291 options.set_option("trace-show-function-calls", true); \
292 if(cmdline.isset("trace-show-code")) \
293 options.set_option("trace-show-code", true); \
294 if(cmdline.isset("trace-hex")) \
295 options.set_option("trace-hex", true); \
296 if(cmdline.isset("compact-trace")) \
297 options.set_option("compact-trace", true); \
298 if(cmdline.isset("stack-trace")) \
299 options.set_option("stack-trace", true);
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
instructionst::const_iterator const_targett
Step of the trace of a GOTO program.
std::vector< exprt > function_arguments
bool is_function_call() const
bool is_memory_barrier() const
std::list< exprt > io_argst
bool is_assignment() const
bool is_atomic_begin() const
bool is_function_return() const
goto_programt::const_targett pc
void merge_ireps(merge_irept &dest)
Use dest to establish sharing among ireps.
bool is_shared_write() const
bool is_atomic_end() const
bool is_shared_read() const
assignment_typet assignment_type
std::optional< symbol_exprt > get_lhs_object() const
std::size_t step_nr
Number of the step in the trace.
void output(const class namespacet &ns, std::ostream &out) const
Outputs the trace step in ASCII to a given stream.
bool is_constraint() const
void swap(goto_tracet &other)
goto_trace_stept & get_last_step()
Retrieves the final step in the trace for manipulation (used to fill a trace from code,...
const goto_trace_stept & get_last_step() const
std::set< irep_idt > get_failed_property_ids() const
Returns the property IDs of all failed assertions in the trace.
void add_step(const goto_trace_stept &step)
Add a step at the end of the trace.
void output(const class namespacet &ns, std::ostream &out) const
Outputs the trace in ASCII to a given stream.
std::list< goto_trace_stept > stepst
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
bool get_bool_option(const std::string &option) const
The type of an expression, extends irept.
void show_goto_trace(messaget::mstreamt &out, const namespacet &ns, const goto_tracet &goto_trace, const trace_optionst &trace_options=trace_optionst::default_options)
Output the trace on the given stream out.
Options for printing the trace using show_goto_trace.
static const trace_optionst default_options
bool json_full_lhs
Add rawLhs property to trace.
trace_optionst(const optionst &options)
bool hex_representation
Represent plain trace values in hex.
bool base_prefix
Use prefix (0b or 0x) for distinguishing the base of the representation.
bool show_code
Show original code in plain text trace.
bool compact_trace
Give a compact trace.
bool show_function_calls
Show function calls in plain text trace.
bool stack_trace
Give a stack trace only.