mirror of
https://github.com/QB64Official/qb64.git
synced 2024-07-07 18:00:24 +00:00
Groundwork for variable requesting from the IDE (nonworking state).
The _MEMGET part needs extra work. m is of type _MEM, but it's never assigned - does that have something to do with it? Should we have something on the C++ side to access those memory blocks?
This commit is contained in:
parent
3523208b3c
commit
cedff4ef5a
|
@ -1,14 +1,14 @@
|
||||||
$CHECKING:OFF
|
$CHECKING:OFF
|
||||||
|
|
||||||
SUB vwatch (localVariables AS _OFFSET)
|
SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET)
|
||||||
STATIC AS LONG ideHost, breakpointCount, skipCount, timeout, startLevel, lastLine
|
STATIC AS LONG ideHost, breakpointCount, skipCount, timeout, startLevel, lastLine
|
||||||
STATIC AS LONG callStackLength, runToLine
|
STATIC AS LONG callStackLength, runToLine
|
||||||
STATIC AS _BYTE pauseMode, stepOver, bypass, setNextLine
|
STATIC AS _BYTE pauseMode, stepOver, bypass, setNextLine
|
||||||
STATIC buffer$, endc$
|
STATIC buffer$, endc$
|
||||||
DIM AS LONG i
|
DIM AS LONG i, tempIndex, localIndex
|
||||||
DIM AS _OFFSET address
|
DIM AS _OFFSET address
|
||||||
DIM AS _MEM m
|
DIM AS _MEM m
|
||||||
DIM start!, temp$, cmd$, value$, k&
|
DIM start!, temp$, cmd$, value$, k&, dataType$, result$
|
||||||
|
|
||||||
DECLARE LIBRARY
|
DECLARE LIBRARY
|
||||||
SUB vwatch_stoptimers ALIAS stop_timers
|
SUB vwatch_stoptimers ALIAS stop_timers
|
||||||
|
@ -213,10 +213,27 @@ SUB vwatch (localVariables AS _OFFSET)
|
||||||
CASE "call stack"
|
CASE "call stack"
|
||||||
'send call stack history"
|
'send call stack history"
|
||||||
GOSUB SendCallStack
|
GOSUB SendCallStack
|
||||||
CASE "local"
|
CASE "global var"
|
||||||
i = CVL(value$)
|
tempIndex = CVL(LEFT$(value$, 4))
|
||||||
address = localVariables + LEN(address) * i
|
localIndex = CVL(MID$(value$, 5, 4))
|
||||||
PRINT "Local"; i; "is at"; _MEMGET(m, address, _OFFSET)
|
dataType$ = MID$(value$, 9)
|
||||||
|
address = globalVariables + LEN(address) * localIndex
|
||||||
|
GOSUB GetMemData
|
||||||
|
$CONSOLE
|
||||||
|
_ECHO "global var requested:" + STR$(tempIndex) + dataType$
|
||||||
|
_ECHO "== result = " + result$
|
||||||
|
cmd$ = "global var:" + MKL$(tempIndex) + result$
|
||||||
|
GOSUB SendCommand
|
||||||
|
CASE "local var"
|
||||||
|
tempIndex = CVL(LEFT$(value$, 4))
|
||||||
|
localIndex = CVL(MID$(value$, 5, 4))
|
||||||
|
dataType$ = MID$(value$, 9)
|
||||||
|
address = localVariables + LEN(address) * localIndex
|
||||||
|
GOSUB GetMemData
|
||||||
|
_ECHO "local var requested:" + STR$(tempIndex) + dataType$
|
||||||
|
_ECHO "== result = " + result$
|
||||||
|
cmd$ = "local var:" + MKL$(tempIndex) + result$
|
||||||
|
GOSUB SendCommand
|
||||||
CASE "current sub"
|
CASE "current sub"
|
||||||
cmd$ = "current sub:" + vwatch_subname
|
cmd$ = "current sub:" + vwatch_subname
|
||||||
GOSUB SendCommand
|
GOSUB SendCommand
|
||||||
|
@ -285,4 +302,31 @@ SUB vwatch (localVariables AS _OFFSET)
|
||||||
PUT #ideHost, , cmd$
|
PUT #ideHost, , cmd$
|
||||||
cmd$ = ""
|
cmd$ = ""
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
GetMemData:
|
||||||
|
DIM integerType AS INTEGER, uintegerType AS _UNSIGNED INTEGER
|
||||||
|
DIM longType AS LONG, ulongType AS _UNSIGNED LONG
|
||||||
|
DIM singleType AS SINGLE, doubleType AS DOUBLE
|
||||||
|
|
||||||
|
SELECT CASE dataType$
|
||||||
|
CASE "INTEGER"
|
||||||
|
integerType = _MEMGET(m, address, INTEGER)
|
||||||
|
result$ = STR$(integerType)
|
||||||
|
CASE "_UNSIGNED INTEGER"
|
||||||
|
uintegerType = _MEMGET(m, address, _UNSIGNED INTEGER)
|
||||||
|
result$ = STR$(uintegerType)
|
||||||
|
CASE "LONG"
|
||||||
|
longType = _MEMGET(m, address, LONG)
|
||||||
|
result$ = STR$(longType)
|
||||||
|
CASE "_UNSIGNED LONG"
|
||||||
|
ulongType = _MEMGET(m, address, _UNSIGNED LONG)
|
||||||
|
result$ = STR$(ulongType)
|
||||||
|
CASE "SINGLE"
|
||||||
|
singleType = _MEMGET(m, address, SINGLE)
|
||||||
|
result$ = STR$(singleType)
|
||||||
|
CASE "DOUBLE"
|
||||||
|
doubleType = _MEMGET(m, address, DOUBLE)
|
||||||
|
result$ = STR$(doubleType)
|
||||||
|
END SELECT
|
||||||
|
RETURN
|
||||||
END SUB
|
END SUB
|
||||||
|
|
|
@ -11,7 +11,7 @@ DIM SHARED IDEBuildModeChanged
|
||||||
DIM SHARED IdeInfo AS STRING
|
DIM SHARED IdeInfo AS STRING
|
||||||
DIM SHARED IdeContextHelpSF AS _BYTE
|
DIM SHARED IdeContextHelpSF AS _BYTE
|
||||||
|
|
||||||
DIM SHARED host&, hostport$
|
DIM SHARED host&, hostport$, variableWatchList$
|
||||||
|
|
||||||
DIM SHARED IdeSystem AS LONG
|
DIM SHARED IdeSystem AS LONG
|
||||||
'1=Entering text into the main IDE window
|
'1=Entering text into the main IDE window
|
||||||
|
|
|
@ -6743,48 +6743,15 @@ SUB DebugMode
|
||||||
END IF
|
END IF
|
||||||
GOSUB UpdateDisplay
|
GOSUB UpdateDisplay
|
||||||
CASE 15872 'F4
|
CASE 15872 'F4
|
||||||
IF PauseMode THEN
|
IF PauseMode = 0 THEN
|
||||||
requestCallStack:
|
cmd$ = "break"
|
||||||
cmd$ = "call stack"
|
PauseMode = -1
|
||||||
GOSUB SendCommand
|
GOSUB SendCommand
|
||||||
|
|
||||||
IF BypassRequestCallStack THEN GOTO ShowCallStack
|
|
||||||
dummy = DarkenFGBG(0)
|
|
||||||
clearStatusWindow 0
|
|
||||||
setStatusMessage 1, "Requesting call stack...", 7
|
|
||||||
|
|
||||||
start! = TIMER
|
|
||||||
callStackLength = -1
|
|
||||||
DO
|
|
||||||
GOSUB GetCommand
|
|
||||||
IF cmd$ = "call stack size" THEN
|
|
||||||
callStackLength = CVL(value$)
|
|
||||||
IF callStackLength = 0 THEN EXIT DO
|
|
||||||
END IF
|
|
||||||
_LIMIT 100
|
|
||||||
LOOP UNTIL cmd$ = "call stack" OR TIMER - start! > timeout
|
|
||||||
|
|
||||||
IF cmd$ = "call stack" THEN
|
|
||||||
'display call stack
|
|
||||||
callstacklist$ = value$
|
|
||||||
ShowCallStack:
|
|
||||||
clearStatusWindow 0
|
|
||||||
setStatusMessage 1, "Paused.", 2
|
|
||||||
retval = idecallstackbox
|
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0
|
|
||||||
WHILE _MOUSEINPUT: WEND
|
|
||||||
ELSE
|
|
||||||
IF callStackLength = -1 THEN
|
|
||||||
callStackLength = 0
|
|
||||||
clearStatusWindow 0
|
|
||||||
setStatusMessage 1, "Error retrieving call stack.", 2
|
|
||||||
ELSEIF callStackLength = 0 THEN
|
|
||||||
clearStatusWindow 0
|
|
||||||
setStatusMessage 1, "No call stack log available.", 2
|
|
||||||
END IF
|
|
||||||
END IF
|
|
||||||
noFocusMessage = NOT noFocusMessage
|
|
||||||
END IF
|
END IF
|
||||||
|
result = idevariablewatchbox
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
WHILE _MOUSEINPUT: WEND
|
||||||
|
GOSUB UpdateDisplay
|
||||||
CASE 16128 'F5
|
CASE 16128 'F5
|
||||||
requestContinue:
|
requestContinue:
|
||||||
PauseMode = 0
|
PauseMode = 0
|
||||||
|
@ -6856,6 +6823,49 @@ SUB DebugMode
|
||||||
GOSUB SendCommand
|
GOSUB SendCommand
|
||||||
END IF
|
END IF
|
||||||
GOSUB UpdateDisplay
|
GOSUB UpdateDisplay
|
||||||
|
CASE 34304 'F12
|
||||||
|
IF PauseMode THEN
|
||||||
|
requestCallStack:
|
||||||
|
cmd$ = "call stack"
|
||||||
|
GOSUB SendCommand
|
||||||
|
|
||||||
|
IF BypassRequestCallStack THEN GOTO ShowCallStack
|
||||||
|
dummy = DarkenFGBG(0)
|
||||||
|
clearStatusWindow 0
|
||||||
|
setStatusMessage 1, "Requesting call stack...", 7
|
||||||
|
|
||||||
|
start! = TIMER
|
||||||
|
callStackLength = -1
|
||||||
|
DO
|
||||||
|
GOSUB GetCommand
|
||||||
|
IF cmd$ = "call stack size" THEN
|
||||||
|
callStackLength = CVL(value$)
|
||||||
|
IF callStackLength = 0 THEN EXIT DO
|
||||||
|
END IF
|
||||||
|
_LIMIT 100
|
||||||
|
LOOP UNTIL cmd$ = "call stack" OR TIMER - start! > timeout
|
||||||
|
|
||||||
|
IF cmd$ = "call stack" THEN
|
||||||
|
'display call stack
|
||||||
|
callstacklist$ = value$
|
||||||
|
ShowCallStack:
|
||||||
|
clearStatusWindow 0
|
||||||
|
setStatusMessage 1, "Paused.", 2
|
||||||
|
retval = idecallstackbox
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
WHILE _MOUSEINPUT: WEND
|
||||||
|
ELSE
|
||||||
|
IF callStackLength = -1 THEN
|
||||||
|
callStackLength = 0
|
||||||
|
clearStatusWindow 0
|
||||||
|
setStatusMessage 1, "Error retrieving call stack.", 2
|
||||||
|
ELSEIF callStackLength = 0 THEN
|
||||||
|
clearStatusWindow 0
|
||||||
|
setStatusMessage 1, "No call stack log available.", 2
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
noFocusMessage = NOT noFocusMessage
|
||||||
|
END IF
|
||||||
CASE 103, 71 'g, G
|
CASE 103, 71 'g, G
|
||||||
IF _KEYDOWN(100306) OR _KEYDOWN(100305) THEN
|
IF _KEYDOWN(100306) OR _KEYDOWN(100305) THEN
|
||||||
IF _KEYDOWN(100304) OR _KEYDOWN(100303) THEN
|
IF _KEYDOWN(100304) OR _KEYDOWN(100303) THEN
|
||||||
|
@ -6920,6 +6930,26 @@ SUB DebugMode
|
||||||
setStatusMessage 1, "Paused.", 2
|
setStatusMessage 1, "Paused.", 2
|
||||||
END IF
|
END IF
|
||||||
PauseMode = -1
|
PauseMode = -1
|
||||||
|
|
||||||
|
'request variables
|
||||||
|
IF LEN(variableWatchList$) THEN
|
||||||
|
temp$ = variableWatchList$
|
||||||
|
DO WHILE LEN(temp$)
|
||||||
|
tempIndex& = CVL(LEFT$(temp$, 4))
|
||||||
|
temp$ = MID$(temp$, 5)
|
||||||
|
IF LEN(usedVariableList(tempIndex&).subfunc) = 0 THEN
|
||||||
|
cmd$ = "global var:"
|
||||||
|
ELSE
|
||||||
|
cmd$ = "local var:"
|
||||||
|
END IF
|
||||||
|
cmd$ = cmd$ + MKL$(tempIndex&) + MKL$(usedVariableList(tempIndex&).localIndex) + usedVariableList(tempIndex&).varType
|
||||||
|
GOSUB SendCommand
|
||||||
|
LOOP
|
||||||
|
END IF
|
||||||
|
CASE "global var", "local var"
|
||||||
|
tempIndex& = CVL(LEFT$(value$, 4))
|
||||||
|
value$ = MID$(value$, 5)
|
||||||
|
usedVariableList(tempIndex&).mostRecentValue = value$
|
||||||
CASE "quit"
|
CASE "quit"
|
||||||
CLOSE #client&
|
CLOSE #client&
|
||||||
dummy = DarkenFGBG(0)
|
dummy = DarkenFGBG(0)
|
||||||
|
@ -7018,7 +7048,7 @@ FUNCTION idevariablewatchbox
|
||||||
|
|
||||||
'-------- init --------
|
'-------- init --------
|
||||||
|
|
||||||
mainmodule$ = "MAIN MODULE"
|
mainmodule$ = "GLOBAL"
|
||||||
maxModuleNameLen = LEN(mainmodule$)
|
maxModuleNameLen = LEN(mainmodule$)
|
||||||
maxVarLen = LEN("Variable")
|
maxVarLen = LEN("Variable")
|
||||||
maxTypeLen = LEN("Type")
|
maxTypeLen = LEN("Type")
|
||||||
|
@ -7068,6 +7098,9 @@ FUNCTION idevariablewatchbox
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
l$ = l$ + text$ + l3$
|
l$ = l$ + text$ + l3$
|
||||||
|
IF IdeDebugMode > 0 AND LEN(usedVariableList(x).mostRecentValue) > 0 THEN
|
||||||
|
l$ = l$ + " = " + usedVariableList(x).mostRecentValue
|
||||||
|
END IF
|
||||||
IF x < totalVariablesCreated THEN l$ = l$ + sep
|
IF x < totalVariablesCreated THEN l$ = l$ + sep
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
|
@ -7191,6 +7224,12 @@ FUNCTION idevariablewatchbox
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF K$ = CHR$(27) OR (focus = 4 AND info <> 0) THEN
|
IF K$ = CHR$(27) OR (focus = 4 AND info <> 0) THEN
|
||||||
|
variableWatchList$ = ""
|
||||||
|
FOR y = 1 TO totalVisibleVariables
|
||||||
|
IF usedVariableList(varDlgList(y).index).watch THEN
|
||||||
|
variableWatchList$ = variableWatchList$ + MKL$(varDlgList(y).index)
|
||||||
|
END IF
|
||||||
|
NEXT
|
||||||
EXIT FUNCTION
|
EXIT FUNCTION
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ Set_OrderOfOperations
|
||||||
|
|
||||||
DIM SHARED vWatchOn, vWatchRecompileAttempts, vWatchDesiredState, vWatchErrorCall$
|
DIM SHARED vWatchOn, vWatchRecompileAttempts, vWatchDesiredState, vWatchErrorCall$
|
||||||
DIM SHARED vWatchNewVariable$, vWatchVariableExclusions$
|
DIM SHARED vWatchNewVariable$, vWatchVariableExclusions$
|
||||||
vWatchErrorCall$ = "if (stop_program) {*__LONG_VWATCH_LINENUMBER=0; SUB_VWATCH((ptrszint*)vwatch_local_vars);};if(new_error){bkp_new_error=new_error;new_error=0;*__LONG_VWATCH_LINENUMBER=-1; SUB_VWATCH((ptrszint*)vwatch_local_vars);new_error=bkp_new_error;};"
|
vWatchErrorCall$ = "if (stop_program) {*__LONG_VWATCH_LINENUMBER=0; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars);};if(new_error){bkp_new_error=new_error;new_error=0;*__LONG_VWATCH_LINENUMBER=-1; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars);new_error=bkp_new_error;};"
|
||||||
vWatchVariableExclusions$ = "@__LONG_VWATCH_LINENUMBER@__LONG_VWATCH_SUBLEVEL@__LONG_VWATCH_GOTO@" + _
|
vWatchVariableExclusions$ = "@__LONG_VWATCH_LINENUMBER@__LONG_VWATCH_SUBLEVEL@__LONG_VWATCH_GOTO@" + _
|
||||||
"@__STRING_VWATCH_SUBNAME@__STRING_VWATCH_CALLSTACK@__ARRAY_BYTE_VWATCH_BREAKPOINTS" + _
|
"@__STRING_VWATCH_SUBNAME@__STRING_VWATCH_CALLSTACK@__ARRAY_BYTE_VWATCH_BREAKPOINTS" + _
|
||||||
"@__ARRAY_BYTE_VWATCH_SKIPLINES@"
|
"@__ARRAY_BYTE_VWATCH_SKIPLINES@"
|
||||||
|
@ -111,6 +111,7 @@ DIM SHARED MonochromeLoggingMode AS _BYTE
|
||||||
TYPE usedVarList
|
TYPE usedVarList
|
||||||
used AS _BYTE
|
used AS _BYTE
|
||||||
watch AS _BYTE
|
watch AS _BYTE
|
||||||
|
mostRecentValue AS STRING
|
||||||
linenumber AS LONG
|
linenumber AS LONG
|
||||||
includeLevel AS LONG
|
includeLevel AS LONG
|
||||||
includedLine AS LONG
|
includedLine AS LONG
|
||||||
|
@ -5157,7 +5158,7 @@ DO
|
||||||
|
|
||||||
PRINT #12, "qbs_set(__STRING_VWATCH_SUBNAME,qbs_new_txt_len(" + CHR$(34) + inclinenump$ + subfuncoriginalname$ + CHR$(34) + "," + str2$(LEN(inclinenump$ + subfuncoriginalname$)) + "));"
|
PRINT #12, "qbs_set(__STRING_VWATCH_SUBNAME,qbs_new_txt_len(" + CHR$(34) + inclinenump$ + subfuncoriginalname$ + CHR$(34) + "," + str2$(LEN(inclinenump$ + subfuncoriginalname$)) + "));"
|
||||||
PRINT #12, "qbs_cleanup(qbs_tmp_base,0);"
|
PRINT #12, "qbs_cleanup(qbs_tmp_base,0);"
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER=-2; SUB_VWATCH((ptrszint*)vwatch_local_vars);"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER=-2; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars);"
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -5301,7 +5302,7 @@ DO
|
||||||
IF vWatchOn = 1 THEN
|
IF vWatchOn = 1 THEN
|
||||||
IF NoChecks = 0 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
vWatchAddLabel 0, -1
|
vWatchAddLabel 0, -1
|
||||||
END IF
|
END IF
|
||||||
PRINT #12, "*__LONG_VWATCH_SUBLEVEL=*__LONG_VWATCH_SUBLEVEL- 1 ;"
|
PRINT #12, "*__LONG_VWATCH_SUBLEVEL=*__LONG_VWATCH_SUBLEVEL- 1 ;"
|
||||||
|
@ -5569,7 +5570,7 @@ DO
|
||||||
PRINT #12, "fornext_continue_" + str2$(controlid(controllevel)) + ":;"
|
PRINT #12, "fornext_continue_" + str2$(controlid(controllevel)) + ":;"
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 AND NoChecks = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 AND NoChecks = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
PRINT #12, "}"
|
PRINT #12, "}"
|
||||||
PRINT #12, "fornext_exit_" + str2$(controlid(controllevel)) + ":;"
|
PRINT #12, "fornext_exit_" + str2$(controlid(controllevel)) + ":;"
|
||||||
|
@ -5619,7 +5620,7 @@ DO
|
||||||
IF (typ AND ISSTRING) THEN a$ = "WHILE ERROR! Cannot accept a STRING type.": GOTO errmes
|
IF (typ AND ISSTRING) THEN a$ = "WHILE ERROR! Cannot accept a STRING type.": GOTO errmes
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
PRINT #12, "while((" + e$ + ")||new_error){"
|
PRINT #12, "while((" + e$ + ")||new_error){"
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -5679,14 +5680,14 @@ DO
|
||||||
IF whileuntil = 1 THEN PRINT #12, "while((" + e$ + ")||new_error){" ELSE PRINT #12, "while((!(" + e$ + "))||new_error){"
|
IF whileuntil = 1 THEN PRINT #12, "while((" + e$ + ")||new_error){" ELSE PRINT #12, "while((!(" + e$ + "))||new_error){"
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
controltype(controllevel) = 4
|
controltype(controllevel) = 4
|
||||||
ELSE
|
ELSE
|
||||||
controltype(controllevel) = 3
|
controltype(controllevel) = 3
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 AND NoChecks = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 AND NoChecks = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "do{*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "do{*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
ELSE
|
ELSE
|
||||||
PRINT #12, "do{"
|
PRINT #12, "do{"
|
||||||
END IF
|
END IF
|
||||||
|
@ -5721,7 +5722,7 @@ DO
|
||||||
PRINT #12, "dl_continue_" + str2$(controlid(controllevel)) + ":;"
|
PRINT #12, "dl_continue_" + str2$(controlid(controllevel)) + ":;"
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
IF whileuntil = 1 THEN PRINT #12, "}while((" + e$ + ")&&(!new_error));" ELSE PRINT #12, "}while((!(" + e$ + "))&&(!new_error));"
|
IF whileuntil = 1 THEN PRINT #12, "}while((" + e$ + ")&&(!new_error));" ELSE PRINT #12, "}while((!(" + e$ + "))&&(!new_error));"
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -5729,7 +5730,7 @@ DO
|
||||||
|
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF controltype(controllevel) = 4 THEN
|
IF controltype(controllevel) = 4 THEN
|
||||||
|
@ -5883,7 +5884,7 @@ DO
|
||||||
|
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
PRINT #12, "fornext_step" + u$ + "=" + e$ + ";"
|
PRINT #12, "fornext_step" + u$ + "=" + e$ + ";"
|
||||||
|
@ -5971,7 +5972,7 @@ DO
|
||||||
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
FOR i = controllevel TO 1 STEP -1
|
FOR i = controllevel TO 1 STEP -1
|
||||||
|
@ -6013,7 +6014,7 @@ DO
|
||||||
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -6096,7 +6097,7 @@ DO
|
||||||
|
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
PRINT #12, "}"
|
PRINT #12, "}"
|
||||||
|
@ -6117,7 +6118,7 @@ DO
|
||||||
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -6243,7 +6244,7 @@ DO
|
||||||
|
|
||||||
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF SelectCaseCounter > 0 AND SelectCaseHasCaseBlock(SelectCaseCounter) = 0 THEN
|
IF SelectCaseCounter > 0 AND SelectCaseHasCaseBlock(SelectCaseCounter) = 0 THEN
|
||||||
|
@ -6362,7 +6363,7 @@ DO
|
||||||
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
PRINT #12, "S_" + str2$(statementn) + ":;": dynscope = 1
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -6551,7 +6552,7 @@ DO
|
||||||
IF NoChecks = 0 THEN
|
IF NoChecks = 0 THEN
|
||||||
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "do{*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "do{*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
ELSE
|
ELSE
|
||||||
PRINT #12, "do{"
|
PRINT #12, "do{"
|
||||||
END IF
|
END IF
|
||||||
|
@ -7548,7 +7549,6 @@ DO
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF ids(currentid).share = 0 THEN vWatchVariable RTRIM$(ids(currentid).callname), -2
|
|
||||||
ids(currentid).share = ids(currentid).share OR 2 'set as temporarily shared
|
ids(currentid).share = ids(currentid).share OR 2 'set as temporarily shared
|
||||||
|
|
||||||
'method must apply to the current sub/function regardless of how the variable was defined in 'main'
|
'method must apply to the current sub/function regardless of how the variable was defined in 'main'
|
||||||
|
@ -8910,7 +8910,7 @@ DO
|
||||||
|
|
||||||
IF vWatchOn = 1 THEN
|
IF vWatchOn = 1 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= 0; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= 0; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
END IF
|
END IF
|
||||||
PRINT #12, "if (sub_gl_called) error(271);"
|
PRINT #12, "if (sub_gl_called) error(271);"
|
||||||
PRINT #12, "close_program=1;"
|
PRINT #12, "close_program=1;"
|
||||||
|
@ -8933,7 +8933,7 @@ DO
|
||||||
END IF
|
END IF
|
||||||
layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$
|
layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$
|
||||||
IF vWatchOn = 1 AND NoChecks = 0 AND inclinenumber(inclevel) = 0 THEN
|
IF vWatchOn = 1 AND NoChecks = 0 AND inclinenumber(inclevel) = 0 THEN
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER=-3; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER=-3; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
vWatchAddLabel linenumber, 0
|
vWatchAddLabel linenumber, 0
|
||||||
ELSE
|
ELSE
|
||||||
PRINT #12, "close_program=1;"
|
PRINT #12, "close_program=1;"
|
||||||
|
@ -14223,19 +14223,13 @@ END SUB
|
||||||
SUB vWatchVariable (this$, action AS _BYTE)
|
SUB vWatchVariable (this$, action AS _BYTE)
|
||||||
STATIC totalLocalVariables AS LONG, localVariablesList$
|
STATIC totalLocalVariables AS LONG, localVariablesList$
|
||||||
STATIC totalMainModuleVariables AS LONG, mainModuleVariablesList$
|
STATIC totalMainModuleVariables AS LONG, mainModuleVariablesList$
|
||||||
STATIC totalSharedVariablesFromMainModule AS LONG, mainModuleSharedVariablesList$
|
|
||||||
|
|
||||||
SELECT CASE action
|
SELECT CASE action
|
||||||
CASE -2 'new variable added to main module using SHARED in a SUB
|
|
||||||
totalLocalVariables = totalLocalVariables + 1
|
|
||||||
localVariablesList$ = localVariablesList$ + "vwatch_local_vars[" + str2$(totalLocalVariables - 1) + "] = &" + this$ + ";" + CRLF
|
|
||||||
CASE -1 'reset
|
CASE -1 'reset
|
||||||
totalLocalVariables = 0
|
totalLocalVariables = 0
|
||||||
localVariablesList$ = ""
|
localVariablesList$ = ""
|
||||||
totalMainModuleVariables = 0
|
totalMainModuleVariables = 0
|
||||||
mainModuleVariablesList$ = ""
|
mainModuleVariablesList$ = ""
|
||||||
totalSharedVariablesFromMainModule = 0
|
|
||||||
mainModuleSharedVariablesList$ = ""
|
|
||||||
CASE 0 'add
|
CASE 0 'add
|
||||||
IF INSTR(vWatchVariableExclusions$, "@" + this$ + "@") > 0 OR LEFT$(this$, 12) = "_SUB_VWATCH_" THEN
|
IF INSTR(vWatchVariableExclusions$, "@" + this$ + "@") > 0 OR LEFT$(this$, 12) = "_SUB_VWATCH_" THEN
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
|
@ -14244,12 +14238,7 @@ SUB vWatchVariable (this$, action AS _BYTE)
|
||||||
vWatchNewVariable$ = this$
|
vWatchNewVariable$ = this$
|
||||||
IF subfunc = "" THEN
|
IF subfunc = "" THEN
|
||||||
totalMainModuleVariables = totalMainModuleVariables + 1
|
totalMainModuleVariables = totalMainModuleVariables + 1
|
||||||
mainModuleVariablesList$ = mainModuleVariablesList$ + "vwatch_local_vars[" + str2$(totalMainModuleVariables - 1) + "] = &" + this$ + ";" + CRLF
|
mainModuleVariablesList$ = mainModuleVariablesList$ + "vwatch_global_vars[" + str2$(totalMainModuleVariables - 1) + "] = &" + this$ + ";" + CRLF
|
||||||
IF dimshared = 1 THEN
|
|
||||||
'DIM SHARED variables will be appended to every SUB
|
|
||||||
totalSharedVariablesFromMainModule = totalSharedVariablesFromMainModule + 1
|
|
||||||
mainModuleSharedVariablesList$ = mainModuleSharedVariablesList$ + MKL$(LEN(this$)) + this$
|
|
||||||
END IF
|
|
||||||
manageVariableList id.cn, this$, totalMainModuleVariables - 1, 0
|
manageVariableList id.cn, this$, totalMainModuleVariables - 1, 0
|
||||||
ELSE
|
ELSE
|
||||||
totalLocalVariables = totalLocalVariables + 1
|
totalLocalVariables = totalLocalVariables + 1
|
||||||
|
@ -14259,28 +14248,20 @@ SUB vWatchVariable (this$, action AS _BYTE)
|
||||||
CASE 1 'dump to data[].txt & reset
|
CASE 1 'dump to data[].txt & reset
|
||||||
IF subfunc = "" THEN
|
IF subfunc = "" THEN
|
||||||
IF totalMainModuleVariables > 0 THEN
|
IF totalMainModuleVariables > 0 THEN
|
||||||
PRINT #13, "void *vwatch_local_vars["; totalMainModuleVariables; "];"
|
PRINT #13, "void *vwatch_local_vars[0];"
|
||||||
|
PRINT #18, "void *vwatch_global_vars["; totalMainModuleVariables; "];"
|
||||||
PRINT #13, mainModuleVariablesList$
|
PRINT #13, mainModuleVariablesList$
|
||||||
ELSE
|
ELSE
|
||||||
PRINT #13, "void *vwatch_local_vars[0];"
|
PRINT #13, "void *vwatch_local_vars[0];"
|
||||||
|
PRINT #18, "void *vwatch_global_vars[0];"
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
mainModuleVariablesList$ = ""
|
mainModuleVariablesList$ = ""
|
||||||
totalMainModuleVariables = 0
|
totalMainModuleVariables = 0
|
||||||
ELSE
|
ELSE
|
||||||
IF subfunc <> "SUB_VWATCH" THEN
|
IF subfunc <> "SUB_VWATCH" THEN
|
||||||
IF totalLocalVariables + totalSharedVariablesFromMainModule > 0 THEN
|
IF totalLocalVariables > 0 THEN
|
||||||
PRINT #13, "void *vwatch_local_vars["; (totalLocalVariables + totalSharedVariablesFromMainModule); "];"
|
PRINT #13, "void *vwatch_local_vars["; (totalLocalVariables); "];"
|
||||||
i = totalLocalVariables
|
|
||||||
tempShared$ = mainModuleSharedVariablesList$
|
|
||||||
tempVar$ = ""
|
|
||||||
DO UNTIL i = totalLocalVariables + totalSharedVariablesFromMainModule
|
|
||||||
length = CVL(LEFT$(tempShared$, 4))
|
|
||||||
tempVar$ = MID$(tempShared$, 5, length)
|
|
||||||
tempShared$ = MID$(tempShared$, 5 + length)
|
|
||||||
localVariablesList$ = localVariablesList$ + "vwatch_local_vars[" + str2$(i) + "] = &" + tempVar$ + ";" + CRLF
|
|
||||||
i = i + 1
|
|
||||||
LOOP
|
|
||||||
PRINT #13, localVariablesList$
|
PRINT #13, localVariablesList$
|
||||||
ELSE
|
ELSE
|
||||||
PRINT #13, "void *vwatch_local_vars[0];"
|
PRINT #13, "void *vwatch_local_vars[0];"
|
||||||
|
@ -22817,7 +22798,7 @@ END FUNCTION
|
||||||
SUB xend
|
SUB xend
|
||||||
IF vWatchOn = 1 THEN
|
IF vWatchOn = 1 THEN
|
||||||
IF (inclinenumber(inclevel) = 0 OR closedmain = 0) THEN vWatchAddLabel 0, -1
|
IF (inclinenumber(inclevel) = 0 OR closedmain = 0) THEN vWatchAddLabel 0, -1
|
||||||
PRINT #12, "*__LONG_VWATCH_LINENUMBER= 0; SUB_VWATCH((ptrszint*)vwatch_local_vars);"
|
PRINT #12, "*__LONG_VWATCH_LINENUMBER= 0; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars);"
|
||||||
END IF
|
END IF
|
||||||
PRINT #12, "sub_end();"
|
PRINT #12, "sub_end();"
|
||||||
END SUB
|
END SUB
|
||||||
|
@ -25941,6 +25922,7 @@ SUB manageVariableList (__name$, __cname$, localIndex AS LONG, action AS _BYTE)
|
||||||
END IF
|
END IF
|
||||||
usedVariableList(i).used = 0
|
usedVariableList(i).used = 0
|
||||||
usedVariableList(i).watch = 0
|
usedVariableList(i).watch = 0
|
||||||
|
usedVariableList(i).mostRecentValue = ""
|
||||||
usedVariableList(i).linenumber = linenumber
|
usedVariableList(i).linenumber = linenumber
|
||||||
usedVariableList(i).includeLevel = inclevel
|
usedVariableList(i).includeLevel = inclevel
|
||||||
IF inclevel > 0 THEN
|
IF inclevel > 0 THEN
|
||||||
|
|
Loading…
Reference in a new issue