| 1089 | } |
| 1090 | |
| 1091 | void Debugger::RuleActionPostHook(RuleActionNode * action) |
| 1092 | { |
| 1093 | // Avoid action mapping errors during merge |
| 1094 | if (debuggingDisabled_) { |
| 1095 | return; |
| 1096 | } |
| 1097 | |
| 1098 | ServerThreadReentry(); |
| 1099 | auto const * mapping = actionMappings_.FindActionMapping(action); |
| 1100 | if (mapping == nullptr) { |
| 1101 | return; |
| 1102 | } |
| 1103 | |
| 1104 | BreakpointReason reason; |
| 1105 | if (mapping->rule != nullptr) { |
| 1106 | reason = BreakpointReason::RuleActionCall; |
| 1107 | } |
| 1108 | else if (mapping->isInit) { |
| 1109 | reason = BreakpointReason::GoalInitCall; |
| 1110 | } |
| 1111 | else { |
| 1112 | reason = BreakpointReason::GoalExitCall; |
| 1113 | } |
| 1114 | |
| 1115 | PopFrame({ reason, mapping->rule, mapping->goal, mapping->actionIndex, nullptr, nullptr }); |
| 1116 | } |
| 1117 | } |
| 1118 | |
| 1119 | #endif |
no test coverage detected