diff options
Diffstat (limited to 'kxsldbg/kxsldbgpart/libxsldbg/debug.cpp')
| -rw-r--r-- | kxsldbg/kxsldbgpart/libxsldbg/debug.cpp | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/kxsldbg/kxsldbgpart/libxsldbg/debug.cpp b/kxsldbg/kxsldbgpart/libxsldbg/debug.cpp deleted file mode 100644 index 2975f814..00000000 --- a/kxsldbg/kxsldbgpart/libxsldbg/debug.cpp +++ /dev/null @@ -1,235 +0,0 @@ - -/*************************************************************************** - debug.c - main functions for debugger use - ------------------- - begin : Fri Nov 2 2001 - copyright : (C) 2001 by Keith Isdale - email : k_isdale@tpg.com.au - ***************************************************************************/ - -#include "xsldbg.h" -#include "debug.h" -#include "debugXSL.h" /* needed for debugXSLBreak function */ -#include "breakpoint.h" -#include "callstack.h" -#include "files.h" -#include "options.h" - -#include <libxslt/xsltutils.h> /* need for breakpoint callback support */ - -/* setup debugger callbacks */ -struct DebuggerCallbacks { - xsltHandleDebuggerCallback debuggercallback; - xsltAddCallCallback addcallback; - xsltDropCallCallback dropcallback; -} debuggerDriver; - - -/* ----------------------------------------- - Private functions - -------------------------------------------*/ - -/** - * debugHandleDebugger: - * @cur : source node being executed - * @node : data node being processed - * @templ : temlate that applies to node - * @ctxt : the xslt transform context - * - * If either cur or node are a breakpoint, or xslDebugStatus in state - * where debugging must occcur at this time, then transfer control - * to the debugXSLBreak function - */ -void debugHandleDebugger(xmlNodePtr cur, xmlNodePtr node, - xsltTemplatePtr templ, - xsltTransformContextPtr ctxt); - -/* ------------------------------------- - End private functions ----------------------------------------*/ - - -/*----------------------------------------------------------- - Main debugger functions ------------------------------------------------------------*/ - - - -/** - * debugInit : - * - * Initialize debugger - * Returns 1 on success, - * 0 otherwise - */ -int -debugInit(void) -{ - int result; - - xslDebugStatus = DEBUG_NONE; - result = breakPointInit(); - result = result && callStackInit(); - - /* setup debugger callbacks */ - debuggerDriver.debuggercallback = debugHandleDebugger; - debuggerDriver.addcallback = callStackAdd; - debuggerDriver.dropcallback = callStackDrop; - xsltSetDebuggerCallbacks(3, &debuggerDriver); - return result; -} - - -/** - * debugFree : - * - * Free up any memory taken by debugging - */ -void -debugFree(void) -{ - breakPointFree(); - callStackFree(); -} - - -/** - * debugGotControl: - * @reached: 1 if debugger has received control, -1 to read its value, - 0 to clear the flag - * - * Set flag that debugger has received control to value of @reached - * - * Returns 1 if any break point was reached previously, - * 0 otherwise - */ -int -debugGotControl(int reached) -{ - static int hasReached; - int result = hasReached; - - if (reached != -1) - hasReached = reached; - return result; -} - - -/** - * debugHandleDebugger: - * @cur : source node being executed - * @node : data node being processed - * @templ : temlate that applies to node - * @ctxt : the xslt transform context - * - * If either cur or node are a breakpoint, or xslDebugStatus in state - * where debugging must occcur at this time then transfer control - * to the debugXSLBreak function - */ -void -debugHandleDebugger(xmlNodePtr cur, xmlNodePtr node, - xsltTemplatePtr templ, xsltTransformContextPtr ctxt) -{ - - if (!cur && !node) { - xsldbgGenericErrorFunc(i18n("Error: XSLT source and XML data are empty. Cannot enter the debugger.\n")); - } else { - if (optionsGetIntOption(OPTIONS_GDB)){ - int doValidation = 0; - switch(xsldbgValidateBreakpoints){ - case BREAKPOINTS_ARE_VALID: - if (!filesGetStylesheet() || !filesGetMainDoc()) { - xsldbgValidateBreakpoints = BREAKPOINTS_NEED_VALIDATION; - doValidation = 1; - } - - break; - - case BREAKPOINTS_NEED_VALIDATION: - if (filesGetStylesheet() && filesGetMainDoc() && templ){ - xsldbgValidateBreakpoints = BREAKPOINTS_BEING_VALIDATED; - doValidation = 1; - } - break; - - case BREAKPOINTS_BEING_VALIDATED: - /*should never be in the state for any length of time */ -#ifdef WITH_XSLDBG_DEBUG_BREAKPOINTS - xsltGenericError(xsltGenericErrorContext, - "Error: Unexpected breakpoint validation state %d", xsldbgValidateBreakpoints); -#endif - break; - } - if (doValidation){ - /* breakpoints will either be marked as orphaned or not as needed */ - xsldbgValidateBreakpoints = BREAKPOINTS_BEING_VALIDATED; - walkBreakPoints((xmlHashScanner) - xslDbgShellValidateBreakPoint, ctxt); - if (filesGetStylesheet() && filesGetMainDoc() && templ){ - xsldbgValidateBreakpoints = BREAKPOINTS_ARE_VALID; - }else{ - xsldbgValidateBreakpoints = BREAKPOINTS_NEED_VALIDATION; - } - } - } - switch (xslDebugStatus) { - - /* A temparary stopping point */ - case DEBUG_WALK: - case DEBUG_TRACE: - /* only allow breakpoints at xml elements */ - if (xmlGetLineNo(cur) != -1) - debugXSLBreak(cur, node, templ, ctxt); - break; - - case DEBUG_STOP: - xslDebugStatus = DEBUG_CONT; - /* only allow breakpoints at xml elements */ - if (xmlGetLineNo(cur) != -1) - debugXSLBreak(cur, node, templ, ctxt); - break; - - case DEBUG_STEP: - /* only allow breakpoints at xml elements */ - if (xmlGetLineNo(cur) != -1) - debugXSLBreak(cur, node, templ, ctxt); - break; - - case DEBUG_CONT: - { - breakPointPtr breakPtr = NULL; - xmlChar *baseUri = NULL; - - if (cur) { - breakPtr = - breakPointGet(cur->doc->URL, - xmlGetLineNo(cur)); - - if (breakPtr && (breakPtr->flags & BREAKPOINT_ENABLED) ){ - debugXSLBreak(cur, node, templ, ctxt); - return; - } - } - if (node) { - baseUri = filesGetBaseUri(node); - if (baseUri != NULL) { - breakPtr = - breakPointGet(baseUri, xmlGetLineNo(node)); - } else { - breakPtr = - breakPointGet(node->doc->URL, - xmlGetLineNo(node)); - } - if (breakPtr) { - if (breakPtr->flags & BREAKPOINT_ENABLED) { - debugXSLBreak(cur, node, templ, ctxt); - } - } - if (baseUri) - xmlFree(baseUri); - } - } - break; - } - } -} |
