From 84b5bb3055caf12eec60f835e8c047960edaf381 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Mon, 26 Jul 2021 17:34:44 -0300 Subject: [PATCH] Wishful attempt at getting var export to work. Failed. --- internal/support/vwatch/vwatch.bm | 24 ++++++++++++++---------- source/ide/ide_methods.bas | 14 ++++++++------ 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/internal/support/vwatch/vwatch.bm b/internal/support/vwatch/vwatch.bm index e3641a1f5..731abdcea 100644 --- a/internal/support/vwatch/vwatch.bm +++ b/internal/support/vwatch/vwatch.bm @@ -16,6 +16,10 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET) SUB unlockvWatchHandle END DECLARE + DECLARE CUSTOMTYPE LIBRARY + SUB memcpy (BYVAL dest AS _OFFSET, BYVAL source AS _OFFSET, BYVAL bytes AS LONG) + END DECLARE + IF bypass THEN EXIT SUB vwatch_goto = 0 @@ -217,10 +221,10 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET) tempIndex = CVL(LEFT$(value$, 4)) localIndex = CVL(MID$(value$, 5, 4)) dataType$ = MID$(value$, 9) - address = globalVariables + LEN(address) * localIndex + address = globalVariables GOSUB GetMemData $CONSOLE - _ECHO "global var requested:" + STR$(tempIndex) + dataType$ + _ECHO "global var requested:" + STR$(tempIndex) + STR$(localIndex) + " " + dataType$ _ECHO "== result = " + result$ cmd$ = "global var:" + MKL$(tempIndex) + result$ GOSUB SendCommand @@ -228,9 +232,9 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET) tempIndex = CVL(LEFT$(value$, 4)) localIndex = CVL(MID$(value$, 5, 4)) dataType$ = MID$(value$, 9) - address = localVariables + LEN(address) * localIndex + address = localVariables GOSUB GetMemData - _ECHO "local var requested:" + STR$(tempIndex) + dataType$ + _ECHO "local var requested:" + STR$(tempIndex) + STR$(localIndex) + " " + dataType$ _ECHO "== result = " + result$ cmd$ = "local var:" + MKL$(tempIndex) + result$ GOSUB SendCommand @@ -310,22 +314,22 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET) SELECT CASE dataType$ CASE "INTEGER" - integerType = _MEMGET(m, address, INTEGER) + memcpy _OFFSET(integerType), address + LEN(address) * localIndex, 2 result$ = STR$(integerType) CASE "_UNSIGNED INTEGER" - uintegerType = _MEMGET(m, address, _UNSIGNED INTEGER) + memcpy _OFFSET(uintegerType), address + LEN(address) * localIndex, 2 result$ = STR$(uintegerType) CASE "LONG" - longType = _MEMGET(m, address, LONG) + memcpy _OFFSET(longType), address + LEN(address) * localIndex, 4 result$ = STR$(longType) CASE "_UNSIGNED LONG" - ulongType = _MEMGET(m, address, _UNSIGNED LONG) + memcpy _OFFSET(ulongType), address + LEN(address) * localIndex, 4 result$ = STR$(ulongType) CASE "SINGLE" - singleType = _MEMGET(m, address, SINGLE) + memcpy _OFFSET(singleType), address + LEN(address) * localIndex, 4 result$ = STR$(singleType) CASE "DOUBLE" - doubleType = _MEMGET(m, address, DOUBLE) + memcpy _OFFSET(doubleType), address + LEN(address) * localIndex, 8 result$ = STR$(doubleType) END SELECT RETURN diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 6f8be8748..d56c08319 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -6937,13 +6937,15 @@ SUB DebugMode 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:" + IF usedVariableList(tempIndex&).watch THEN + 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 END IF - cmd$ = cmd$ + MKL$(tempIndex&) + MKL$(usedVariableList(tempIndex&).localIndex) + usedVariableList(tempIndex&).varType - GOSUB SendCommand LOOP END IF CASE "global var", "local var"