CBMC
goto_symex_fault_localizer.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Fault Localization for Goto Symex
4 
5 Author: Peter Schrammel
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_CHECKER_GOTO_SYMEX_FAULT_LOCALIZER_H
13 #define CPROVER_GOTO_CHECKER_GOTO_SYMEX_FAULT_LOCALIZER_H
14 
15 #include <util/threeval.h>
16 
18 
19 class optionst;
22 class SSA_stept;
24 
26 {
27 public:
29  const optionst &options,
33 
34  fault_location_infot operator()(const irep_idt &failed_property_id);
35 
36 protected:
37  const optionst &options;
41 
43  typedef std::map<exprt, fault_location_infot::score_mapt::iterator>
45 
50  const irep_idt &failed_property_id,
51  localization_pointst &localization_points,
52  fault_location_infot &fault_location);
53 
54  // specify a localization point combination to check
55  typedef std::vector<tvt> localization_points_valuet;
56  bool check(
57  const SSA_stept &failed_step,
58  const localization_pointst &,
60 
61  void update_scores(const localization_pointst &);
62 
63  // localization method: flip each point
64  void
65  localize_linear(const SSA_stept &failed_step, const localization_pointst &);
66 };
67 
68 #endif // CPROVER_GOTO_CHECKER_GOTO_SYMEX_FAULT_LOCALIZER_H
dstringt
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:36
goto_symex_fault_localizert::collect_guards
const SSA_stept & collect_guards(const irep_idt &failed_property_id, localization_pointst &localization_points, fault_location_infot &fault_location)
Collects the guards as localization_points up to failed_property_id and initializes fault_location_in...
Definition: goto_symex_fault_localizer.cpp:53
goto_symex_fault_localizert::update_scores
void update_scores(const localization_pointst &)
Definition: goto_symex_fault_localizer.cpp:105
goto_symex_fault_localizert::options
const optionst & options
Definition: goto_symex_fault_localizer.h:37
ui_message_handlert
Definition: ui_message.h:21
optionst
Definition: options.h:22
SSA_stept
Single SSA step in the equation.
Definition: ssa_step.h:46
threeval.h
goto_symex_fault_localizert::localization_pointst
std::map< exprt, fault_location_infot::score_mapt::iterator > localization_pointst
A localization point is a goto instruction that is potentially at fault.
Definition: goto_symex_fault_localizer.h:44
fault_location_infot
Definition: fault_localization_provider.h:22
goto_symex_fault_localizert::localization_points_valuet
std::vector< tvt > localization_points_valuet
Definition: goto_symex_fault_localizer.h:55
stack_decision_proceduret
Definition: stack_decision_procedure.h:57
goto_symex_fault_localizert::equation
const symex_target_equationt & equation
Definition: goto_symex_fault_localizer.h:39
goto_symex_fault_localizert
Definition: goto_symex_fault_localizer.h:25
goto_symex_fault_localizert::operator()
fault_location_infot operator()(const irep_idt &failed_property_id)
Definition: goto_symex_fault_localizer.cpp:33
goto_symex_fault_localizert::check
bool check(const SSA_stept &failed_step, const localization_pointst &, const localization_points_valuet &)
Definition: goto_symex_fault_localizer.cpp:80
goto_symex_fault_localizert::solver
stack_decision_proceduret & solver
Definition: goto_symex_fault_localizer.h:40
goto_symex_fault_localizert::localize_linear
void localize_linear(const SSA_stept &failed_step, const localization_pointst &)
Definition: goto_symex_fault_localizer.cpp:122
symex_target_equationt
Inheriting the interface of symex_targett this class represents the SSA form of the input program as ...
Definition: symex_target_equation.h:33
fault_localization_provider.h
goto_symex_fault_localizert::ui_message_handler
ui_message_handlert & ui_message_handler
Definition: goto_symex_fault_localizer.h:38
goto_symex_fault_localizert::goto_symex_fault_localizert
goto_symex_fault_localizert(const optionst &options, ui_message_handlert &ui_message_handler, const symex_target_equationt &equation, stack_decision_proceduret &solver)
Definition: goto_symex_fault_localizer.cpp:20