From 28661bbf362b0da4518acf3cdfde9f43fa4c908b Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Tue, 24 Aug 2021 03:53:39 -0300 Subject: [PATCH] Adds minimal support for watching _BIT variables. --- source/ide/ide_methods.bas | 20 ++++++++++++++++++-- source/qb64.bas | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 2af2cf027..5adbbc224 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -7411,7 +7411,7 @@ SUB DebugMode cmd$ = cmd$ + MKL$(tempStorage&) cmd$ = cmd$ + MKI$(LEN(usedVariableList(tempIndex&).subfunc)) cmd$ = cmd$ + usedVariableList(tempIndex&).subfunc - cmd$ = cmd$ + MKI$(LEN(varType$)) + varType$ + cmd$ = cmd$ + MKI$(LEN(tempVarType$)) + tempVarType$ GOSUB SendCommand ELSE cmd$ = "" @@ -7427,7 +7427,7 @@ SUB DebugMode tempStorage& = CVL(MID$(value$, 13, 4)) recvData$ = MID$(value$, 17) GOSUB GetVarSize - SELECT CASE varType$ + SELECT CASE tempVarType$ CASE "_BYTE", "BYTE": recvData$ = STR$(_CV(_BYTE, recvData$)) CASE "_UNSIGNED _BYTE", "UNSIGNED BYTE": recvData$ = STR$(_CV(_UNSIGNED _BYTE, recvData$)) CASE "INTEGER": recvData$ = STR$(_CV(INTEGER, recvData$)) @@ -7599,6 +7599,18 @@ SUB DebugMode checkVarType: tempVarType$ = varType$ IF INSTR(tempVarType$, "STRING *") THEN tempVarType$ = "STRING" + IF INSTR(tempVarType$, "BIT *") THEN + IF VAL(MID$(tempVarType$, _INSTRREV(tempVarType$, " ") + 1)) > 32 THEN + tempVarType$ = "_INTEGER64" + IF INSTR(tempVarType$, "UNSIGNED") THEN tempVarType$ = "_UNSIGNED _INTEGER64" + ELSE + tempVarType$ = "LONG" + IF INSTR(tempVarType$, "UNSIGNED") THEN tempVarType$ = "_UNSIGNED LONG" + END IF + ELSEIF INSTR("@_BIT@BIT@_UNSIGNED _BIT@UNSIGNED BIT@", "@" + tempVarType$ + "@") THEN + tempVarType$ = "LONG" + IF INSTR(tempVarType$, "UNSIGNED") THEN tempVarType$ = "_UNSIGNED LONG" + END IF SELECT CASE tempVarType$ CASE "_BYTE", "_UNSIGNED _BYTE", "BYTE", "UNSIGNED BYTE": varSize& = LEN(dummy%%) CASE "INTEGER", "_UNSIGNED INTEGER", "UNSIGNED INTEGER": varSize& = LEN(dummy%) @@ -8144,6 +8156,7 @@ FUNCTION idevariablewatchbox$(currentScope$, filter$, selectVar, returnAction) varType$ = usedVariableList(varDlgList(y).index).varType IF INSTR(varType$, "STRING *") THEN varType$ = "STRING" + IF INSTR(varType$, "_BIT *") THEN varType$ = "_BIT" IF INSTR(nativeDataTypes$, varType$) = 0 THEN 'It's a UDT elementIndexes$ = "" @@ -8615,6 +8628,7 @@ FUNCTION ideelementwatchbox$(currentPath$, elementIndexes$, level, ok) FOR y = 1 TO totalElements varType$ = varDlgList(y).varType IF INSTR(varType$, "STRING *") THEN varType$ = "STRING" + IF INSTR(varType$, "BIT *") THEN varType$ = "_BIT" IF INSTR(nativeDataTypes$, varType$) > 0 THEN varDlgList(y).selected = -1 ASC(idetxt(o(varListBox).txt), varDlgList(y).colorFlag) = variableNameColor @@ -8643,6 +8657,7 @@ FUNCTION ideelementwatchbox$(currentPath$, elementIndexes$, level, ok) IF varDlgList(y).selected THEN varType$ = varDlgList(y).varType IF INSTR(varType$, "STRING *") THEN varType$ = "STRING" + IF INSTR(varType$, "BIT *") THEN varType$ = "_BIT" IF INSTR(nativeDataTypes$, varType$) > 0 THEN 'non-native data types will have already been added to the return list thisName$ = RTRIM$(udtecname(varDlgList(y).index)) @@ -8684,6 +8699,7 @@ FUNCTION ideelementwatchbox$(currentPath$, elementIndexes$, level, ok) IF varDlgList(y).selected THEN varType$ = varDlgList(y).varType IF INSTR(varType$, "STRING *") THEN varType$ = "STRING" + IF INSTR(varType$, "BIT *") THEN varType$ = "_BIT" IF INSTR(nativeDataTypes$, varType$) = 0 THEN 'It's a UDT elementIndexes2$ = "" diff --git a/source/qb64.bas b/source/qb64.bas index 8d54b2b8c..a72db394f 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -34,7 +34,7 @@ vWatchVariableExclusions$ = "@__LONG_VWATCH_LINENUMBER@__LONG_VWATCH_SUBLEVEL@__ "@__ARRAY_BYTE_VWATCH_SKIPLINES@__STRING_VWATCH_INTERNALSUBNAME@__ARRAY_STRING_VWATCH_STACK@" DIM SHARED nativeDataTypes$ -nativeDataTypes$ = "@_BYTE@_UNSIGNED _BYTE@BYTE@UNSIGNED BYTE@INTEGER@_UNSIGNED INTEGER@UNSIGNED INTEGER@LONG@_UNSIGNED LONG@UNSIGNED LONG@_INTEGER64@INTEGER64@_UNSIGNED _INTEGER64@UNSIGNED INTEGER64@SINGLE@DOUBLE@_FLOAT@FLOAT@STRING@" +nativeDataTypes$ = "@_BIT@_BYTE@_UNSIGNED _BYTE@BYTE@UNSIGNED BYTE@INTEGER@_UNSIGNED INTEGER@UNSIGNED INTEGER@LONG@_UNSIGNED LONG@UNSIGNED LONG@_INTEGER64@INTEGER64@_UNSIGNED _INTEGER64@UNSIGNED INTEGER64@SINGLE@DOUBLE@_FLOAT@FLOAT@STRING@" DIM SHARED qb64prefix_set_recompileAttempts, qb64prefix_set_desiredState DIM SHARED opex_recompileAttempts, opex_desiredState