| 974 | } |
| 975 | |
| 976 | void Debugger::InsertPreHook(Node * node, TuplePtrLL * tuple, bool deleted) |
| 977 | { |
| 978 | ServerThreadReentry(); |
| 979 | auto reason = deleted ? BreakpointReason::NodeDeleteTuple : BreakpointReason::NodeInsertTuple; |
| 980 | PushFrame({ reason, node, nullptr, 0, nullptr, tuple }); |
| 981 | |
| 982 | #if defined(DUMP_TRACEPOINTS) |
| 983 | Debug("%s(Node %d)", deleted ? L"Delete" : L"Insert", node->Id); |
| 984 | #endif |
| 985 | ConditionalBreakpointInServerThread( |
| 986 | node, |
| 987 | BreakpointManager::MakeNodeBreakpointId(node->Id), |
| 988 | deleted ? BreakOnDelete : BreakOnInsert, |
| 989 | deleted ? GlobalBreakOnDelete : GlobalBreakOnInsert); |
| 990 | } |
| 991 | |
| 992 | void Debugger::InsertPostHook(Node * node, TuplePtrLL * tuple, bool deleted) |
| 993 | { |