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