mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 11:25:08 +00:00
Merge branch 'var-export' into development
This commit is contained in:
commit
26863b64c5
11 changed files with 3965 additions and 64 deletions
20
internal/support/color/color0.bi
Normal file
20
internal/support/color/color0.bi
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
'$COLOR:0
|
||||||
|
'Color constants for text mode.
|
||||||
|
CONST Black~%% = 0
|
||||||
|
CONST Blue~%% = 1
|
||||||
|
CONST Green~%% = 2
|
||||||
|
CONST Cyan~%% = 3
|
||||||
|
CONST Red~%% = 4
|
||||||
|
CONST Magenta~%% = 5
|
||||||
|
CONST Brown~%% = 6
|
||||||
|
CONST White~%% = 7
|
||||||
|
CONST Gray~%% = 8
|
||||||
|
CONST LightBlue~%% = 9
|
||||||
|
CONST LightGreen~%% = 10
|
||||||
|
CONST LightCyan~%% = 11
|
||||||
|
CONST LightRed~%% = 12
|
||||||
|
CONST LightMagenta~%% = 13
|
||||||
|
CONST Yellow~%% = 14
|
||||||
|
CONST BrightWhite~%% = 15
|
||||||
|
CONST Blink~%% = 16
|
||||||
|
|
272
internal/support/color/color32.bi
Normal file
272
internal/support/color/color32.bi
Normal file
|
@ -0,0 +1,272 @@
|
||||||
|
'$COLOR:32
|
||||||
|
'Color constants for 32bit mode, based on HTML color names.
|
||||||
|
CONST AliceBlue~& = 4293982463
|
||||||
|
CONST Almond~& = 4293910221
|
||||||
|
CONST AntiqueBrass~& = 4291663221
|
||||||
|
CONST AntiqueWhite~& = 4294634455
|
||||||
|
CONST Apricot~& = 4294826421
|
||||||
|
CONST Aqua~& = 4278255615
|
||||||
|
CONST Aquamarine~& = 4286578644
|
||||||
|
CONST Asparagus~& = 4287080811
|
||||||
|
CONST AtomicTangerine~& = 4294943860
|
||||||
|
CONST Azure~& = 4293984255
|
||||||
|
CONST BananaMania~& = 4294633397
|
||||||
|
CONST Beaver~& = 4288643440
|
||||||
|
CONST Beige~& = 4294309340
|
||||||
|
CONST Bisque~& = 4294960324
|
||||||
|
CONST Bittersweet~& = 4294802542
|
||||||
|
CONST Black~& = 4278190080
|
||||||
|
CONST BlanchedAlmond~& = 4294962125
|
||||||
|
CONST BlizzardBlue~& = 4289521134
|
||||||
|
CONST Blue~& = 4278190335
|
||||||
|
CONST BlueBell~& = 4288848592
|
||||||
|
CONST BlueGray~& = 4284914124
|
||||||
|
CONST BlueGreen~& = 4279081146
|
||||||
|
CONST BlueViolet~& = 4287245282
|
||||||
|
CONST Blush~& = 4292763011
|
||||||
|
CONST BrickRed~& = 4291510612
|
||||||
|
CONST Brown~& = 4289014314
|
||||||
|
CONST BurlyWood~& = 4292786311
|
||||||
|
CONST BurntOrange~& = 4294934345
|
||||||
|
CONST BurntSienna~& = 4293557853
|
||||||
|
CONST CadetBlue~& = 4284456608
|
||||||
|
CONST Canary~& = 4294967193
|
||||||
|
CONST CaribbeanGreen~& = 4280079266
|
||||||
|
CONST CarnationPink~& = 4294945484
|
||||||
|
CONST Cerise~& = 4292691090
|
||||||
|
CONST Cerulean~& = 4280134870
|
||||||
|
CONST ChartReuse~& = 4286578432
|
||||||
|
CONST Chestnut~& = 4290534744
|
||||||
|
CONST Chocolate~& = 4291979550
|
||||||
|
CONST Copper~& = 4292711541
|
||||||
|
CONST Coral~& = 4294934352
|
||||||
|
CONST Cornflower~& = 4288335595
|
||||||
|
CONST CornflowerBlue~& = 4284782061
|
||||||
|
CONST Cornsilk~& = 4294965468
|
||||||
|
CONST CottonCandy~& = 4294950105
|
||||||
|
CONST CrayolaAquamarine~& = 4286110690
|
||||||
|
CONST CrayolaBlue~& = 4280251902
|
||||||
|
CONST CrayolaBlueViolet~& = 4285753021
|
||||||
|
CONST CrayolaBrown~& = 4290013005
|
||||||
|
CONST CrayolaCadetBlue~& = 4289771462
|
||||||
|
CONST CrayolaForestGreen~& = 4285378177
|
||||||
|
CONST CrayolaGold~& = 4293379735
|
||||||
|
CONST CrayolaGoldenrod~& = 4294760821
|
||||||
|
CONST CrayolaGray~& = 4287992204
|
||||||
|
CONST CrayolaGreen~& = 4280069240
|
||||||
|
CONST CrayolaGreenYellow~& = 4293978257
|
||||||
|
CONST CrayolaIndigo~& = 4284315339
|
||||||
|
CONST CrayolaLavender~& = 4294751445
|
||||||
|
CONST CrayolaMagenta~& = 4294337711
|
||||||
|
CONST CrayolaMaroon~& = 4291311706
|
||||||
|
CONST CrayolaMidnightBlue~& = 4279912566
|
||||||
|
CONST CrayolaOrange~& = 4294931768
|
||||||
|
CONST CrayolaOrangeRed~& = 4294912811
|
||||||
|
CONST CrayolaOrchid~& = 4293306583
|
||||||
|
CONST CrayolaPlum~& = 4287513989
|
||||||
|
CONST CrayolaRed~& = 4293795917
|
||||||
|
CONST CrayolaSalmon~& = 4294941610
|
||||||
|
CONST CrayolaSeaGreen~& = 4288668351
|
||||||
|
CONST CrayolaSilver~& = 4291675586
|
||||||
|
CONST CrayolaSkyBlue~& = 4286634731
|
||||||
|
CONST CrayolaSpringGreen~& = 4293716670
|
||||||
|
CONST CrayolaTann~& = 4294616940
|
||||||
|
CONST CrayolaThistle~& = 4293642207
|
||||||
|
CONST CrayolaViolet~& = 4287786670
|
||||||
|
CONST CrayolaYellow~& = 4294764675
|
||||||
|
CONST CrayolaYellowGreen~& = 4291158916
|
||||||
|
CONST Crimson~& = 4292613180
|
||||||
|
CONST Cyan~& = 4278255615
|
||||||
|
CONST Dandelion~& = 4294826861
|
||||||
|
CONST DarkBlue~& = 4278190219
|
||||||
|
CONST DarkCyan~& = 4278225803
|
||||||
|
CONST DarkGoldenRod~& = 4290283019
|
||||||
|
CONST DarkGray~& = 4289309097
|
||||||
|
CONST DarkGreen~& = 4278215680
|
||||||
|
CONST DarkKhaki~& = 4290623339
|
||||||
|
CONST DarkMagenta~& = 4287299723
|
||||||
|
CONST DarkOliveGreen~& = 4283788079
|
||||||
|
CONST DarkOrange~& = 4294937600
|
||||||
|
CONST DarkOrchid~& = 4288230092
|
||||||
|
CONST DarkRed~& = 4287299584
|
||||||
|
CONST DarkSalmon~& = 4293498490
|
||||||
|
CONST DarkSeaGreen~& = 4287609999
|
||||||
|
CONST DarkSlateBlue~& = 4282924427
|
||||||
|
CONST DarkSlateGray~& = 4281290575
|
||||||
|
CONST DarkTurquoise~& = 4278243025
|
||||||
|
CONST DarkViolet~& = 4287889619
|
||||||
|
CONST DeepPink~& = 4294907027
|
||||||
|
CONST DeepSkyBlue~& = 4278239231
|
||||||
|
CONST Denim~& = 4281035972
|
||||||
|
CONST DesertSand~& = 4293905848
|
||||||
|
CONST DimGray~& = 4285098345
|
||||||
|
CONST DodgerBlue~& = 4280193279
|
||||||
|
CONST Eggplant~& = 4285419872
|
||||||
|
CONST ElectricLime~& = 4291755805
|
||||||
|
CONST Fern~& = 4285643896
|
||||||
|
CONST FireBrick~& = 4289864226
|
||||||
|
CONST Floralwhite~& = 4294966000
|
||||||
|
CONST ForestGreen~& = 4280453922
|
||||||
|
CONST Fuchsia~& = 4290995397
|
||||||
|
CONST FuzzyWuzzy~& = 4291585638
|
||||||
|
CONST Gainsboro~& = 4292664540
|
||||||
|
CONST GhostWhite~& = 4294506751
|
||||||
|
CONST Gold~& = 4294956800
|
||||||
|
CONST GoldenRod~& = 4292519200
|
||||||
|
CONST GrannySmithApple~& = 4289258656
|
||||||
|
CONST Gray~& = 4286611584
|
||||||
|
CONST Green~& = 4278222848
|
||||||
|
CONST GreenBlue~& = 4279329972
|
||||||
|
CONST GreenYellow~& = 4289593135
|
||||||
|
CONST HoneyDew~& = 4293984240
|
||||||
|
CONST HotMagenta~& = 4294909390
|
||||||
|
CONST HotPink~& = 4294928820
|
||||||
|
CONST Inchworm~& = 4289915997
|
||||||
|
CONST IndianRed~& = 4291648604
|
||||||
|
CONST Indigo~& = 4283105410
|
||||||
|
CONST Ivory~& = 4294967280
|
||||||
|
CONST JazzberryJam~& = 4291442535
|
||||||
|
CONST JungleGreen~& = 4282101903
|
||||||
|
CONST Khaki~& = 4293977740
|
||||||
|
CONST LaserLemon~& = 4294901282
|
||||||
|
CONST Lavender~& = 4293322490
|
||||||
|
CONST LavenderBlush~& = 4294963445
|
||||||
|
CONST LawnGreen~& = 4286381056
|
||||||
|
CONST LemonChiffon~& = 4294965965
|
||||||
|
CONST LemonYellow~& = 4294964303
|
||||||
|
CONST LightBlue~& = 4289583334
|
||||||
|
CONST LightCoral~& = 4293951616
|
||||||
|
CONST LightCyan~& = 4292935679
|
||||||
|
CONST LightGoldenRodYellow~& = 4294638290
|
||||||
|
CONST LightGray~& = 4292072403
|
||||||
|
CONST LightGreen~& = 4287688336
|
||||||
|
CONST LightPink~& = 4294948545
|
||||||
|
CONST LightSalmon~& = 4294942842
|
||||||
|
CONST LightSeaGreen~& = 4280332970
|
||||||
|
CONST LightSkyBlue~& = 4287090426
|
||||||
|
CONST LightSlateGray~& = 4286023833
|
||||||
|
CONST LightSteelBlue~& = 4289774814
|
||||||
|
CONST LightYellow~& = 4294967264
|
||||||
|
CONST Lime~& = 4278255360
|
||||||
|
CONST LimeGreen~& = 4281519410
|
||||||
|
CONST Linen~& = 4294635750
|
||||||
|
CONST MacaroniAndCheese~& = 4294950280
|
||||||
|
CONST Magenta~& = 4294902015
|
||||||
|
CONST MagicMint~& = 4289392849
|
||||||
|
CONST Mahogany~& = 4291643980
|
||||||
|
CONST Maize~& = 4293775772
|
||||||
|
CONST Manatee~& = 4288125610
|
||||||
|
CONST MangoTango~& = 4294935107
|
||||||
|
CONST Maroon~& = 4286578688
|
||||||
|
CONST Mauvelous~& = 4293892266
|
||||||
|
CONST MediumAquamarine~& = 4284927402
|
||||||
|
CONST MediumBlue~& = 4278190285
|
||||||
|
CONST MediumOrchid~& = 4290401747
|
||||||
|
CONST MediumPurple~& = 4287852763
|
||||||
|
CONST MediumSeaGreen~& = 4282168177
|
||||||
|
CONST MediumSlateBlue~& = 4286277870
|
||||||
|
CONST MediumSpringGreen~& = 4278254234
|
||||||
|
CONST MediumTurquoise~& = 4282962380
|
||||||
|
CONST MediumVioletRed~& = 4291237253
|
||||||
|
CONST Melon~& = 4294818996
|
||||||
|
CONST MidnightBlue~& = 4279834992
|
||||||
|
CONST MintCream~& = 4294311930
|
||||||
|
CONST MistyRose~& = 4294960353
|
||||||
|
CONST Moccasin~& = 4294960309
|
||||||
|
CONST MountainMeadow~& = 4281383567
|
||||||
|
CONST Mulberry~& = 4291120012
|
||||||
|
CONST NavajoWhite~& = 4294958765
|
||||||
|
CONST Navy~& = 4278190208
|
||||||
|
CONST NavyBlue~& = 4279858386
|
||||||
|
CONST NeonCarrot~& = 4294943555
|
||||||
|
CONST OldLace~& = 4294833638
|
||||||
|
CONST Olive~& = 4286611456
|
||||||
|
CONST OliveDrab~& = 4285238819
|
||||||
|
CONST OliveGreen~& = 4290426988
|
||||||
|
CONST Orange~& = 4294944000
|
||||||
|
CONST OrangeRed~& = 4294919424
|
||||||
|
CONST OrangeYellow~& = 4294497640
|
||||||
|
CONST Orchid~& = 4292505814
|
||||||
|
CONST OuterSpace~& = 4282468940
|
||||||
|
CONST OutrageousOrange~& = 4294929994
|
||||||
|
CONST PacificBlue~& = 4280068553
|
||||||
|
CONST PaleGoldenRod~& = 4293847210
|
||||||
|
CONST PaleGreen~& = 4288215960
|
||||||
|
CONST PaleTurquoise~& = 4289720046
|
||||||
|
CONST PaleVioletRed~& = 4292571283
|
||||||
|
CONST PapayaWhip~& = 4294963157
|
||||||
|
CONST Peach~& = 4294954923
|
||||||
|
CONST PeachPuff~& = 4294957753
|
||||||
|
CONST Periwinkle~& = 4291154150
|
||||||
|
CONST Peru~& = 4291659071
|
||||||
|
CONST PiggyPink~& = 4294827494
|
||||||
|
CONST PineGreen~& = 4279599224
|
||||||
|
CONST Pink~& = 4294951115
|
||||||
|
CONST PinkFlamingo~& = 4294735101
|
||||||
|
CONST PinkSherbet~& = 4294414247
|
||||||
|
CONST Plum~& = 4292714717
|
||||||
|
CONST PowderBlue~& = 4289781990
|
||||||
|
CONST Purple~& = 4286578816
|
||||||
|
CONST PurpleHeart~& = 4285809352
|
||||||
|
CONST PurpleMountainsMajesty~& = 4288512442
|
||||||
|
CONST PurplePizzazz~& = 4294856410
|
||||||
|
CONST RadicalRed~& = 4294920556
|
||||||
|
CONST RawSienna~& = 4292250201
|
||||||
|
CONST RawUmber~& = 4285614883
|
||||||
|
CONST RazzleDazzleRose~& = 4294920400
|
||||||
|
CONST Razzmatazz~& = 4293076331
|
||||||
|
CONST Red~& = 4294901760
|
||||||
|
CONST RedOrange~& = 4294923081
|
||||||
|
CONST RedViolet~& = 4290790543
|
||||||
|
CONST RobinsEggBlue~& = 4280274635
|
||||||
|
CONST RosyBrown~& = 4290547599
|
||||||
|
CONST RoyalBlue~& = 4282477025
|
||||||
|
CONST RoyalPurple~& = 4286075305
|
||||||
|
CONST SaddleBrown~& = 4287317267
|
||||||
|
CONST Salmon~& = 4294606962
|
||||||
|
CONST SandyBrown~& = 4294222944
|
||||||
|
CONST Scarlet~& = 4294715463
|
||||||
|
CONST ScreaminGreen~& = 4285988730
|
||||||
|
CONST SeaGreen~& = 4281240407
|
||||||
|
CONST SeaShell~& = 4294964718
|
||||||
|
CONST Sepia~& = 4289030479
|
||||||
|
CONST Shadow~& = 4287265117
|
||||||
|
CONST Shamrock~& = 4282764962
|
||||||
|
CONST ShockingPink~& = 4294672125
|
||||||
|
CONST Sienna~& = 4288696877
|
||||||
|
CONST Silver~& = 4290822336
|
||||||
|
CONST SkyBlue~& = 4287090411
|
||||||
|
CONST SlateBlue~& = 4285160141
|
||||||
|
CONST SlateGray~& = 4285563024
|
||||||
|
CONST Snow~& = 4294966010
|
||||||
|
CONST SpringGreen~& = 4278255487
|
||||||
|
CONST SteelBlue~& = 4282811060
|
||||||
|
CONST Sunglow~& = 4294954824
|
||||||
|
CONST SunsetOrange~& = 4294794835
|
||||||
|
CONST Tann~& = 4291998860
|
||||||
|
CONST Teal~& = 4278222976
|
||||||
|
CONST TealBlue~& = 4279805877
|
||||||
|
CONST Thistle~& = 4292394968
|
||||||
|
CONST TickleMePink~& = 4294740396
|
||||||
|
CONST Timberwolf~& = 4292597714
|
||||||
|
CONST Tomato~& = 4294927175
|
||||||
|
CONST TropicalRainForest~& = 4279730285
|
||||||
|
CONST Tumbleweed~& = 4292782728
|
||||||
|
CONST Turquoise~& = 4282441936
|
||||||
|
CONST TurquoiseBlue~& = 4286045671
|
||||||
|
CONST UnmellowYellow~& = 4294967142
|
||||||
|
CONST Violet~& = 4293821166
|
||||||
|
CONST VioletBlue~& = 4281486002
|
||||||
|
CONST VioletRed~& = 4294398868
|
||||||
|
CONST VividTangerine~& = 4294942857
|
||||||
|
CONST VividViolet~& = 4287582365
|
||||||
|
CONST Wheat~& = 4294303411
|
||||||
|
CONST White~& = 4294967295
|
||||||
|
CONST Whitesmoke~& = 4294309365
|
||||||
|
CONST WildBlueYonder~& = 4288851408
|
||||||
|
CONST WildStrawberry~& = 4294919076
|
||||||
|
CONST WildWatermelon~& = 4294732933
|
||||||
|
CONST Wisteria~& = 4291667166
|
||||||
|
CONST Yellow~& = 4294967040
|
||||||
|
CONST YellowGreen~& = 4288335154
|
||||||
|
CONST YellowOrange~& = 4294946370
|
3230
internal/support/converter/QB45BIN.bas
Normal file
3230
internal/support/converter/QB45BIN.bas
Normal file
File diff suppressed because it is too large
Load diff
14
internal/support/vwatch/vwatch.bi
Normal file
14
internal/support/vwatch/vwatch.bi
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
$CHECKING:OFF
|
||||||
|
DIM SHARED AS LONG vwatch_linenumber, vwatch_sublevel, vwatch_goto
|
||||||
|
DIM SHARED AS STRING vwatch_subname, vwatch_callstack
|
||||||
|
REDIM SHARED vwatch_breakpoints(0) AS _BYTE
|
||||||
|
REDIM SHARED vwatch_skiplines(0) AS _BYTE
|
||||||
|
'next lines are just to avoid "unused variable" warnings:
|
||||||
|
vwatch_linenumber = 0
|
||||||
|
vwatch_sublevel = 0
|
||||||
|
vwatch_goto = 0
|
||||||
|
vwatch_breakpoints(0) = 0
|
||||||
|
vwatch_skiplines(0) = 0
|
||||||
|
vwatch_subname = ""
|
||||||
|
vwatch_callstack = ""
|
||||||
|
$CHECKING:ON
|
285
internal/support/vwatch/vwatch.bm
Normal file
285
internal/support/vwatch/vwatch.bm
Normal file
|
@ -0,0 +1,285 @@
|
||||||
|
$CHECKING:OFF
|
||||||
|
|
||||||
|
SUB vwatch (localVariables AS _OFFSET)
|
||||||
|
STATIC AS LONG ideHost, breakpointCount, skipCount, timeout, startLevel, lastLine
|
||||||
|
STATIC AS LONG callStackLength, runToLine
|
||||||
|
STATIC AS _BYTE pauseMode, stepOver, bypass, setNextLine
|
||||||
|
STATIC buffer$, endc$
|
||||||
|
DIM AS LONG i
|
||||||
|
DIM AS _OFFSET address
|
||||||
|
DIM AS _MEM m
|
||||||
|
DIM start!, temp$, cmd$, value$, k&
|
||||||
|
|
||||||
|
DECLARE LIBRARY
|
||||||
|
SUB vwatch_stoptimers ALIAS stop_timers
|
||||||
|
SUB vwatch_starttimers ALIAS start_timers
|
||||||
|
SUB unlockvWatchHandle
|
||||||
|
END DECLARE
|
||||||
|
|
||||||
|
IF bypass THEN EXIT SUB
|
||||||
|
|
||||||
|
vwatch_goto = 0
|
||||||
|
|
||||||
|
IF ideHost = 0 THEN
|
||||||
|
timeout = 10
|
||||||
|
endc$ = "<END>"
|
||||||
|
|
||||||
|
'initial setup
|
||||||
|
GOSUB Connect
|
||||||
|
|
||||||
|
'send this binary's path/exe name
|
||||||
|
cmd$ = "me:" + COMMAND$(0)
|
||||||
|
GOSUB SendCommand
|
||||||
|
|
||||||
|
DO
|
||||||
|
GOSUB GetCommand
|
||||||
|
SELECT CASE cmd$
|
||||||
|
CASE "vwatch"
|
||||||
|
IF value$ <> "ok" THEN
|
||||||
|
unlockvWatchHandle: CLOSE #ideHost
|
||||||
|
bypass = -1
|
||||||
|
EXIT SUB
|
||||||
|
END IF
|
||||||
|
CASE "line count"
|
||||||
|
REDIM vwatch_breakpoints(CVL(value$)) AS _BYTE
|
||||||
|
REDIM vwatch_skiplines(CVL(value$)) AS _BYTE
|
||||||
|
CASE "breakpoint count"
|
||||||
|
breakpointCount = CVL(value$)
|
||||||
|
CASE "breakpoint list"
|
||||||
|
IF LEN(value$) \ 4 <> breakpointCount THEN
|
||||||
|
cmd$ = "quit:Communication error."
|
||||||
|
GOSUB SendCommand
|
||||||
|
unlockvWatchHandle: CLOSE #ideHost
|
||||||
|
bypass = -1
|
||||||
|
EXIT SUB
|
||||||
|
END IF
|
||||||
|
FOR i = 1 TO breakpointCount
|
||||||
|
temp$ = MID$(value$, i * 4 - 3, 4)
|
||||||
|
vwatch_breakpoints(CVL(temp$)) = -1
|
||||||
|
NEXT
|
||||||
|
CASE "skip count"
|
||||||
|
skipCount = CVL(value$)
|
||||||
|
CASE "skip list"
|
||||||
|
IF LEN(value$) \ 4 <> skipCount THEN
|
||||||
|
cmd$ = "quit:Communication error."
|
||||||
|
GOSUB SendCommand
|
||||||
|
unlockvWatchHandle: CLOSE #ideHost
|
||||||
|
bypass = -1
|
||||||
|
EXIT SUB
|
||||||
|
END IF
|
||||||
|
FOR i = 1 TO skipCount
|
||||||
|
temp$ = MID$(value$, i * 4 - 3, 4)
|
||||||
|
vwatch_skiplines(CVL(temp$)) = -1
|
||||||
|
NEXT
|
||||||
|
CASE "run"
|
||||||
|
IF vwatch_breakpoints(vwatch_linenumber) THEN EXIT DO
|
||||||
|
pauseMode = 0
|
||||||
|
EXIT SUB
|
||||||
|
CASE "break"
|
||||||
|
pauseMode = -1
|
||||||
|
EXIT DO
|
||||||
|
END SELECT
|
||||||
|
LOOP
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF vwatch_linenumber = 0 THEN
|
||||||
|
GOSUB SendCallStack
|
||||||
|
cmd$ = "quit:Program ended."
|
||||||
|
GOSUB SendCommand
|
||||||
|
unlockvWatchHandle: CLOSE #ideHost
|
||||||
|
bypass = -1
|
||||||
|
ideHost = 0
|
||||||
|
EXIT SUB
|
||||||
|
ELSEIF vwatch_linenumber = -1 THEN
|
||||||
|
'report an error in the most recent line
|
||||||
|
GOSUB SendCallStack
|
||||||
|
cmd$ = "error:" + MKL$(lastLine)
|
||||||
|
GOSUB SendCommand
|
||||||
|
EXIT SUB
|
||||||
|
ELSEIF vwatch_linenumber = -2 THEN
|
||||||
|
'report a new sub/function has been "entered"
|
||||||
|
IF LEN(vwatch_callstack) > 100000 THEN
|
||||||
|
vwatch_callstack = ""
|
||||||
|
callStackLength = 0
|
||||||
|
END IF
|
||||||
|
callStackLength = callStackLength + 1
|
||||||
|
IF LEN(vwatch_callstack) THEN vwatch_callstack = vwatch_callstack + CHR$(0)
|
||||||
|
vwatch_callstack = vwatch_callstack + vwatch_subname$ + ", line" + STR$(lastLine)
|
||||||
|
EXIT SUB
|
||||||
|
ELSEIF vwatch_linenumber = -3 THEN
|
||||||
|
'handle STOP - instead of quitting, pause execution
|
||||||
|
pauseMode = -1
|
||||||
|
stepOver = 0
|
||||||
|
EXIT SUB
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF vwatch_linenumber = lastLine AND setNextLine = 0 THEN EXIT SUB
|
||||||
|
setNextLine = 0
|
||||||
|
lastLine = vwatch_linenumber
|
||||||
|
|
||||||
|
GOSUB GetCommand
|
||||||
|
SELECT CASE cmd$
|
||||||
|
CASE "break"
|
||||||
|
pauseMode = -1
|
||||||
|
stepOver = 0
|
||||||
|
runToLine = 0
|
||||||
|
cmd$ = ""
|
||||||
|
CASE "set breakpoint"
|
||||||
|
vwatch_breakpoints(CVL(value$)) = -1
|
||||||
|
vwatch_skiplines(CVL(value$)) = 0
|
||||||
|
CASE "clear breakpoint"
|
||||||
|
vwatch_breakpoints(CVL(value$)) = 0
|
||||||
|
CASE "set skip line"
|
||||||
|
vwatch_skiplines(CVL(value$)) = -1
|
||||||
|
vwatch_breakpoints(CVL(value$)) = 0
|
||||||
|
CASE "clear skip line"
|
||||||
|
vwatch_skiplines(CVL(value$)) = 0
|
||||||
|
CASE "clear all breakpoints"
|
||||||
|
REDIM vwatch_breakpoints(UBOUND(vwatch_breakpoints)) AS _BYTE
|
||||||
|
CASE "clear all skips"
|
||||||
|
REDIM vwatch_skiplines(UBOUND(vwatch_skiplines)) AS _BYTE
|
||||||
|
END SELECT
|
||||||
|
|
||||||
|
IF vwatch_skiplines(vwatch_linenumber) THEN vwatch_goto = -vwatch_linenumber: EXIT SUB
|
||||||
|
|
||||||
|
IF stepOver = -1 AND vwatch_sublevel > startLevel AND vwatch_breakpoints(vwatch_linenumber) = 0 THEN
|
||||||
|
EXIT SUB
|
||||||
|
ELSEIF stepOver = -1 AND vwatch_sublevel = startLevel THEN
|
||||||
|
stepOver = 0
|
||||||
|
pauseMode = -1
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF runToLine > 0 AND runToLine <> vwatch_linenumber THEN
|
||||||
|
EXIT SUB
|
||||||
|
ELSEIF runToLine > 0 AND runToLine = vwatch_linenumber THEN
|
||||||
|
pauseMode = -1
|
||||||
|
runToLine = 0
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF vwatch_breakpoints(vwatch_linenumber) = 0 AND pauseMode = 0 THEN
|
||||||
|
EXIT SUB
|
||||||
|
END IF
|
||||||
|
|
||||||
|
vwatch_stoptimers
|
||||||
|
cmd$ = "line number:"
|
||||||
|
IF vwatch_breakpoints(vwatch_linenumber) THEN cmd$ = "breakpoint:"
|
||||||
|
cmd$ = cmd$ + MKL$(vwatch_linenumber)
|
||||||
|
GOSUB SendCommand
|
||||||
|
|
||||||
|
DO 'main loop
|
||||||
|
SELECT CASE cmd$
|
||||||
|
CASE "run"
|
||||||
|
pauseMode = 0
|
||||||
|
stepOver = 0
|
||||||
|
vwatch_starttimers
|
||||||
|
EXIT SUB
|
||||||
|
CASE "run to line"
|
||||||
|
pauseMode = 0
|
||||||
|
stepOver = 0
|
||||||
|
runToLine = CVL(value$)
|
||||||
|
vwatch_starttimers
|
||||||
|
EXIT SUB
|
||||||
|
CASE "step"
|
||||||
|
pauseMode = -1
|
||||||
|
stepOver = 0
|
||||||
|
EXIT SUB
|
||||||
|
CASE "step over"
|
||||||
|
pauseMode = -1
|
||||||
|
stepOver = -1
|
||||||
|
startLevel = vwatch_sublevel
|
||||||
|
vwatch_starttimers
|
||||||
|
EXIT SUB
|
||||||
|
CASE "step out"
|
||||||
|
pauseMode = -1
|
||||||
|
stepOver = -1
|
||||||
|
startLevel = vwatch_sublevel - 1
|
||||||
|
vwatch_starttimers
|
||||||
|
EXIT SUB
|
||||||
|
CASE "free"
|
||||||
|
unlockvWatchHandle: CLOSE #ideHost
|
||||||
|
ideHost = 0
|
||||||
|
bypass = -1
|
||||||
|
vwatch_starttimers
|
||||||
|
EXIT SUB
|
||||||
|
CASE "set breakpoint"
|
||||||
|
vwatch_breakpoints(CVL(value$)) = -1
|
||||||
|
vwatch_skiplines(CVL(value$)) = 0
|
||||||
|
CASE "clear breakpoint"
|
||||||
|
vwatch_breakpoints(CVL(value$)) = 0
|
||||||
|
CASE "clear all breakpoints"
|
||||||
|
REDIM vwatch_breakpoints(UBOUND(vwatch_breakpoints)) AS _BYTE
|
||||||
|
CASE "clear all skips"
|
||||||
|
REDIM vwatch_skiplines(UBOUND(vwatch_skiplines)) AS _BYTE
|
||||||
|
CASE "call stack"
|
||||||
|
'send call stack history"
|
||||||
|
GOSUB SendCallStack
|
||||||
|
CASE "local"
|
||||||
|
i = CVL(value$)
|
||||||
|
address = localVariables + LEN(address) * i
|
||||||
|
PRINT "Local"; i; "is at"; _MEMGET(m, address, _OFFSET)
|
||||||
|
CASE "set next line"
|
||||||
|
pauseMode = -1
|
||||||
|
stepOver = 0
|
||||||
|
setNextLine = -1
|
||||||
|
vwatch_goto = CVL(value$)
|
||||||
|
EXIT SUB
|
||||||
|
CASE "set skip line"
|
||||||
|
vwatch_skiplines(CVL(value$)) = -1
|
||||||
|
vwatch_breakpoints(CVL(value$)) = 0
|
||||||
|
CASE "clear skip line"
|
||||||
|
vwatch_skiplines(CVL(value$)) = 0
|
||||||
|
END SELECT
|
||||||
|
|
||||||
|
GOSUB GetCommand
|
||||||
|
_LIMIT 100
|
||||||
|
LOOP
|
||||||
|
|
||||||
|
vwatch_starttimers
|
||||||
|
EXIT SUB
|
||||||
|
|
||||||
|
Connect:
|
||||||
|
DIM ideport$
|
||||||
|
ideport$ = ENVIRON$("QB64DEBUGPORT")
|
||||||
|
IF ideport$ = "" THEN bypass = -1: EXIT SUB
|
||||||
|
|
||||||
|
start! = TIMER
|
||||||
|
DO
|
||||||
|
k& = _KEYHIT
|
||||||
|
ideHost = _OPENCLIENT("QB64IDE:" + ideport$ + ":localhost")
|
||||||
|
_LIMIT 30
|
||||||
|
LOOP UNTIL k& = 27 OR ideHost <> 0 OR TIMER - start! > timeout
|
||||||
|
IF ideHost = 0 THEN bypass = -1: EXIT SUB
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
GetCommand:
|
||||||
|
GET #ideHost, , temp$
|
||||||
|
buffer$ = buffer$ + temp$
|
||||||
|
|
||||||
|
IF INSTR(buffer$, endc$) THEN
|
||||||
|
cmd$ = LEFT$(buffer$, INSTR(buffer$, endc$) - 1)
|
||||||
|
buffer$ = MID$(buffer$, INSTR(buffer$, endc$) + LEN(endc$))
|
||||||
|
|
||||||
|
IF INSTR(cmd$, ":") THEN
|
||||||
|
value$ = MID$(cmd$, INSTR(cmd$, ":") + 1)
|
||||||
|
cmd$ = LEFT$(cmd$, INSTR(cmd$, ":") - 1)
|
||||||
|
ELSE
|
||||||
|
value$ = ""
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
cmd$ = "": value$ = ""
|
||||||
|
END IF
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
SendCallStack:
|
||||||
|
cmd$ = "call stack size:" + MKL$(callStackLength)
|
||||||
|
GOSUB SendCommand
|
||||||
|
cmd$ = "call stack:" + vwatch_callstack
|
||||||
|
GOSUB SendCommand
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
SendCommand:
|
||||||
|
cmd$ = cmd$ + endc$
|
||||||
|
PUT #ideHost, , cmd$
|
||||||
|
cmd$ = ""
|
||||||
|
RETURN
|
||||||
|
END SUB
|
|
@ -18,6 +18,7 @@ DIM SHARED WhiteListQB64FirstTimeMsg AS _BYTE, ideautolayoutkwcapitals AS _BYTE
|
||||||
DIM SHARED windowSettingsSection$, colorSettingsSection$, customDictionarySection$
|
DIM SHARED windowSettingsSection$, colorSettingsSection$, customDictionarySection$
|
||||||
DIM SHARED mouseSettingsSection$, generalSettingsSection$, displaySettingsSection$
|
DIM SHARED mouseSettingsSection$, generalSettingsSection$, displaySettingsSection$
|
||||||
DIM SHARED colorSchemesSection$, iniFolderIndex$, DebugInfoIniWarning$, ConfigFile$
|
DIM SHARED colorSchemesSection$, iniFolderIndex$, DebugInfoIniWarning$, ConfigFile$
|
||||||
|
DIM SHARED idebaseTcpPort AS LONG
|
||||||
|
|
||||||
windowSettingsSection$ = "IDE WINDOW"
|
windowSettingsSection$ = "IDE WINDOW"
|
||||||
colorSettingsSection$ = "IDE COLOR SETTINGS"
|
colorSettingsSection$ = "IDE COLOR SETTINGS"
|
||||||
|
@ -218,6 +219,10 @@ result = ReadConfigSetting(generalSettingsSection$, "BackupSize", value$)
|
||||||
idebackupsize = VAL(value$)
|
idebackupsize = VAL(value$)
|
||||||
IF idebackupsize < 10 OR idebackupsize > 2000 THEN idebackupsize = 100: WriteConfigSetting generalSettingsSection$, "BackupSize", "100 'in MB"
|
IF idebackupsize < 10 OR idebackupsize > 2000 THEN idebackupsize = 100: WriteConfigSetting generalSettingsSection$, "BackupSize", "100 'in MB"
|
||||||
|
|
||||||
|
result = ReadConfigSetting(generalSettingsSection$, "BaseTCPPort", value$)
|
||||||
|
idebaseTcpPort = VAL(value$)
|
||||||
|
IF idebaseTcpPort = 0 THEN idebaseTcpPort = 9000: WriteConfigSetting generalSettingsSection$, "BaseTCPPort", "9000"
|
||||||
|
|
||||||
result = ReadConfigSetting(generalSettingsSection$, "DebugInfo", value$)
|
result = ReadConfigSetting(generalSettingsSection$, "DebugInfo", value$)
|
||||||
idedebuginfo = VAL(value$)
|
idedebuginfo = VAL(value$)
|
||||||
IF UCASE$(LEFT$(value$, 4)) = "TRUE" THEN idedebuginfo = 1
|
IF UCASE$(LEFT$(value$, 4)) = "TRUE" THEN idedebuginfo = 1
|
||||||
|
|
|
@ -168,7 +168,7 @@ DIM SHARED EnteringRGB AS _BYTE
|
||||||
DIM SHARED ActiveINCLUDELink AS LONG
|
DIM SHARED ActiveINCLUDELink AS LONG
|
||||||
DIM SHARED ActiveINCLUDELinkFile AS STRING
|
DIM SHARED ActiveINCLUDELinkFile AS STRING
|
||||||
DIM SHARED HideCurrentLineHighlight AS _BYTE, ShowLineNumbers AS _BYTE
|
DIM SHARED HideCurrentLineHighlight AS _BYTE, ShowLineNumbers AS _BYTE
|
||||||
DIM SHARED SearchMenuEnableQuickNav AS INTEGER
|
DIM SHARED SearchMenuEnableQuickNav AS INTEGER, searchStringFoundOn AS LONG
|
||||||
DIM SHARED idegotobox_LastLineNum AS LONG, maxLineNumberLength AS LONG
|
DIM SHARED idegotobox_LastLineNum AS LONG, maxLineNumberLength AS LONG
|
||||||
DIM SHARED versionStringStatus$, lineNumberStatus$
|
DIM SHARED versionStringStatus$, lineNumberStatus$
|
||||||
|
|
||||||
|
|
|
@ -344,6 +344,11 @@ FUNCTION ide2 (ignore)
|
||||||
menuDesc$(m, i - 1) = "Removes all breakpoints"
|
menuDesc$(m, i - 1) = "Removes all breakpoints"
|
||||||
menu$(m, i) = "Toggle #Skip Line Ctrl+P": i = i + 1
|
menu$(m, i) = "Toggle #Skip Line Ctrl+P": i = i + 1
|
||||||
menuDesc$(m, i - 1) = "Sets/clears flag to skip line"
|
menuDesc$(m, i - 1) = "Sets/clears flag to skip line"
|
||||||
|
menu$(m, i) = "#Unskip All Lines Ctrl+F10": i = i + 1
|
||||||
|
menuDesc$(m, i - 1) = "Removes all line skip flags"
|
||||||
|
menu$(m, i) = "-": i = i + 1
|
||||||
|
menu$(m, i) = "Set Base #TCP/IP Port Number...": i = i + 1
|
||||||
|
menuDesc$(m, i - 1) = "Sets the initial port number for TCP/IP communication with the debuggee"
|
||||||
menusize(m) = i - 1
|
menusize(m) = i - 1
|
||||||
|
|
||||||
m = m + 1: i = 0: OptionsMenuID = m
|
m = m + 1: i = 0: OptionsMenuID = m
|
||||||
|
@ -693,14 +698,19 @@ FUNCTION ide2 (ignore)
|
||||||
IF ideautorun THEN ideautorun = 0: GOTO idemrunspecial
|
IF ideautorun THEN ideautorun = 0: GOTO idemrunspecial
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
STATIC attemptToHost AS _BYTE
|
STATIC AS _BYTE attemptToHost, changingTcpPort
|
||||||
IF vWatchOn = 1 AND attemptToHost = 0 THEN
|
IF vWatchOn = 1 AND attemptToHost = 0 THEN
|
||||||
IF host& = 0 THEN
|
IF host& = 0 THEN
|
||||||
hostport$ = _TRIM$(STR$(9000 + tempfolderindex))
|
hostport$ = _TRIM$(STR$(idebaseTcpPort + tempfolderindex))
|
||||||
ENVIRON "QB64DEBUGPORT=" + hostport$
|
ENVIRON "QB64DEBUGPORT=" + hostport$
|
||||||
host& = _OPENHOST("TCP/IP:" + hostport$)
|
host& = _OPENHOST("TCP/IP:" + hostport$)
|
||||||
attemptToHost = -1
|
attemptToHost = -1
|
||||||
END IF
|
END IF
|
||||||
|
IF changingTcpPort AND (host& = 0) THEN
|
||||||
|
result = idemessagebox("$DEBUG MODE", "Cannot receive connections on port" + STR$(idebaseTcpPort) + ".\nCheck your firewall permissions.", "")
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
END IF
|
||||||
|
changingTcpPort = 0
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF c$ = CHR$(254) THEN
|
IF c$ = CHR$(254) THEN
|
||||||
|
@ -714,13 +724,15 @@ FUNCTION ide2 (ignore)
|
||||||
idesubwindow = 0
|
idesubwindow = 0
|
||||||
skipdisplay = 0
|
skipdisplay = 0
|
||||||
IdeSystem = 1
|
IdeSystem = 1
|
||||||
retval = 1: GOSUB redrawItAll
|
retval = 1
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
GOSUB redrawItAll
|
||||||
idecompiling = 0
|
idecompiling = 0
|
||||||
ready = 1
|
ready = 1
|
||||||
_RESIZE OFF
|
_RESIZE OFF
|
||||||
DebugMode
|
DebugMode
|
||||||
|
UpdateMenuHelpLine ""
|
||||||
SELECT CASE IdeDebugMode
|
SELECT CASE IdeDebugMode
|
||||||
CASE 1 'clean exit
|
CASE 1 'clean exit
|
||||||
IdeDebugMode = 0
|
IdeDebugMode = 0
|
||||||
|
@ -1582,6 +1594,14 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO toggleBreakpoint
|
GOTO toggleBreakpoint
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
IF KB = KEY_F10 THEN 'clear all breakpoints
|
||||||
|
IF KCTRL THEN
|
||||||
|
GOTO unskipAllLines
|
||||||
|
ELSE
|
||||||
|
GOTO clearAllBreakpoints
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
IF KB = KEY_F11 THEN 'make exe only
|
IF KB = KEY_F11 THEN 'make exe only
|
||||||
idemexe:
|
idemexe:
|
||||||
iderunmode = 2
|
iderunmode = 2
|
||||||
|
@ -2734,6 +2754,7 @@ FUNCTION ide2 (ignore)
|
||||||
|
|
||||||
WikiParse a$
|
WikiParse a$
|
||||||
IdeSystem = 3
|
IdeSystem = 3
|
||||||
|
GOSUB redrawItAll
|
||||||
GOTO specialchar
|
GOTO specialchar
|
||||||
|
|
||||||
EXIT FOR
|
EXIT FOR
|
||||||
|
@ -5737,6 +5758,7 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO EnterDebugMode
|
GOTO EnterDebugMode
|
||||||
ELSE
|
ELSE
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
clearAllBreakpoints:
|
||||||
REDIM IdeBreakpoints(iden) AS _BYTE
|
REDIM IdeBreakpoints(iden) AS _BYTE
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
|
@ -5766,6 +5788,32 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
IF menu$(m, s) = "#Unskip All Lines Ctrl+F10" THEN
|
||||||
|
IF IdeDebugMode = 2 THEN
|
||||||
|
IdeDebugMode = 15
|
||||||
|
GOTO EnterDebugMode
|
||||||
|
ELSE
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
unskipAllLines:
|
||||||
|
REDIM IdeSkipLines(iden) AS _BYTE
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF menu$(m, s) = "Set Base #TCP/IP Port Number..." THEN
|
||||||
|
PCOPY 2, 0
|
||||||
|
bkpidebaseTcpPort = idebaseTcpPort
|
||||||
|
ideSetTCPPortBox
|
||||||
|
IF bkpidebaseTcpPort <> idebaseTcpPort THEN
|
||||||
|
IF host& <> 0 THEN CLOSE host&: host& = 0
|
||||||
|
attemptToHost = 0
|
||||||
|
changingTcpPort = -1
|
||||||
|
idechangemade = 1
|
||||||
|
END IF
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
|
||||||
IF menu$(m, s) = "Set #Next Line Ctrl+G" THEN
|
IF menu$(m, s) = "Set #Next Line Ctrl+G" THEN
|
||||||
IdeDebugMode = 13
|
IdeDebugMode = 13
|
||||||
GOTO EnterDebugMode
|
GOTO EnterDebugMode
|
||||||
|
@ -6003,8 +6051,17 @@ FUNCTION ide2 (ignore)
|
||||||
COLOR 7, 1: _PRINTSTRING (idewx - 2, idewy - 4), CHR$(195)
|
COLOR 7, 1: _PRINTSTRING (idewx - 2, idewy - 4), CHR$(195)
|
||||||
|
|
||||||
'add status title
|
'add status title
|
||||||
IF IdeSystem = 2 THEN COLOR 1, 7 ELSE COLOR 7, 1
|
COLOR 7, 1
|
||||||
_PRINTSTRING ((idewx - 8) / 2, idewy - 4), " Status "
|
a$ = STRING$(14, 196)
|
||||||
|
_PRINTSTRING ((idewx - LEN(a$)) / 2, idewy - 4), a$
|
||||||
|
IF IdeDebugMode THEN
|
||||||
|
COLOR 1, 7
|
||||||
|
a$ = " $DEBUG MODE "
|
||||||
|
ELSE
|
||||||
|
IF IdeSystem = 2 THEN COLOR 1, 7 ELSE COLOR 7, 1
|
||||||
|
a$ = " Status "
|
||||||
|
END IF
|
||||||
|
_PRINTSTRING ((idewx - LEN(a$)) / 2, idewy - 4), a$
|
||||||
|
|
||||||
a$ = idefindtext
|
a$ = idefindtext
|
||||||
tx = 1
|
tx = 1
|
||||||
|
@ -6207,7 +6264,7 @@ FUNCTION ide2 (ignore)
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
SUB DebugMode
|
SUB DebugMode
|
||||||
STATIC PauseMode AS _BYTE
|
STATIC AS _BYTE PauseMode, noFocusMessage
|
||||||
STATIC client&
|
STATIC client&
|
||||||
STATIC buffer$
|
STATIC buffer$
|
||||||
STATIC endc$
|
STATIC endc$
|
||||||
|
@ -6217,44 +6274,31 @@ SUB DebugMode
|
||||||
|
|
||||||
SCREEN , , 3, 0
|
SCREEN , , 3, 0
|
||||||
|
|
||||||
SELECT CASE IdeDebugMode
|
SELECT EVERYCASE IdeDebugMode
|
||||||
CASE 1
|
CASE 1
|
||||||
PauseMode = 0
|
PauseMode = 0
|
||||||
callStackLength = 0
|
callStackLength = 0
|
||||||
callstacklist$ = ""
|
callstacklist$ = ""
|
||||||
buffer$ = ""
|
buffer$ = ""
|
||||||
client& = 0
|
client& = 0
|
||||||
CASE 2
|
CASE IS > 1
|
||||||
IdeDebugMode = 1
|
noFocusMessage = NOT noFocusMessage
|
||||||
GOTO returnFromContextMenu
|
GOSUB UpdateStatusArea
|
||||||
CASE 3
|
clearStatusWindow 1
|
||||||
IdeDebugMode = 1
|
setStatusMessage 1, "Paused.", 2
|
||||||
GOTO requestCallStack
|
CASE 2: IdeDebugMode = 1: GOTO returnFromContextMenu
|
||||||
CASE 4
|
CASE 3: IdeDebugMode = 1: GOTO requestCallStack
|
||||||
IdeDebugMode = 1
|
CASE 4: IdeDebugMode = 1: GOTO requestContinue
|
||||||
GOTO requestContinue
|
CASE 5: IdeDebugMode = 1: GOTO requestStepOut
|
||||||
CASE 5
|
CASE 6: IdeDebugMode = 1: GOTO requestStepOver
|
||||||
IdeDebugMode = 1
|
CASE 7: IdeDebugMode = 1: GOTO requestPause
|
||||||
GOTO requestStepOut
|
|
||||||
CASE 6
|
|
||||||
IdeDebugMode = 1
|
|
||||||
GOTO requestStepOver
|
|
||||||
CASE 7
|
|
||||||
IdeDebugMode = 1
|
|
||||||
GOTO requestPause
|
|
||||||
CASE 8
|
CASE 8
|
||||||
IdeDebugMode = 1
|
IdeDebugMode = 1
|
||||||
result = idecy
|
result = idecy
|
||||||
GOTO requestRunToThisLine
|
GOTO requestRunToThisLine
|
||||||
CASE 9
|
CASE 9: IdeDebugMode = 1: GOTO requestQuit
|
||||||
IdeDebugMode = 1
|
CASE 10: IdeDebugMode = 1: GOTO requestToggleBreakpoint
|
||||||
GOTO requestQuit
|
CASE 11: IdeDebugMode = 1: GOTO requestClearBreakpoints
|
||||||
CASE 10
|
|
||||||
IdeDebugMode = 1
|
|
||||||
GOTO requestToggleBreakpoint
|
|
||||||
CASE 11
|
|
||||||
IdeDebugMode = 1
|
|
||||||
GOTO requestClearBreakpoints
|
|
||||||
CASE 12
|
CASE 12
|
||||||
IdeDebugMode = 1
|
IdeDebugMode = 1
|
||||||
result = idecy
|
result = idecy
|
||||||
|
@ -6263,9 +6307,8 @@ SUB DebugMode
|
||||||
IdeDebugMode = 1
|
IdeDebugMode = 1
|
||||||
result = idecy
|
result = idecy
|
||||||
GOTO requestSetNextLine
|
GOTO requestSetNextLine
|
||||||
CASE 14
|
CASE 14: IdeDebugMode = 1: GOTO requestSubsDialog
|
||||||
IdeDebugMode = 1
|
CASE 15: IdeDebugMode = 1: GOTO requestUnskipAllLines
|
||||||
GOTO requestSubsDialog
|
|
||||||
END SELECT
|
END SELECT
|
||||||
|
|
||||||
COLOR 0, 7: _PRINTSTRING (1, 1), SPACE$(LEN(menubar$))
|
COLOR 0, 7: _PRINTSTRING (1, 1), SPACE$(LEN(menubar$))
|
||||||
|
@ -6283,7 +6326,7 @@ SUB DebugMode
|
||||||
dummy = DarkenFGBG(0)
|
dummy = DarkenFGBG(0)
|
||||||
clearStatusWindow 1
|
clearStatusWindow 1
|
||||||
setStatusMessage 1, "Failed to initiate debug session.", 7
|
setStatusMessage 1, "Failed to initiate debug session.", 7
|
||||||
setStatusMessage 2, "Cannot receive connections. Check your firewall permissions.", 2
|
setStatusMessage 2, "Cannot receive connections on port" + STR$(idebaseTcpPort) + ". Check your firewall permissions.", 2
|
||||||
WHILE _MOUSEINPUT: WEND
|
WHILE _MOUSEINPUT: WEND
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
@ -6405,7 +6448,7 @@ SUB DebugMode
|
||||||
GOSUB SendCommand
|
GOSUB SendCommand
|
||||||
|
|
||||||
clearStatusWindow 2
|
clearStatusWindow 2
|
||||||
setStatusMessage 2, "$DEBUG: Set focus to the IDE to control execution", 15
|
setStatusMessage 2, "$DEBUG MODE: Set focus to the IDE to control execution", 15
|
||||||
|
|
||||||
noFocusMessage = -1
|
noFocusMessage = -1
|
||||||
|
|
||||||
|
@ -6579,22 +6622,25 @@ SUB DebugMode
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
|
||||||
|
UpdateStatusArea:
|
||||||
IF _WINDOWHASFOCUS THEN
|
IF _WINDOWHASFOCUS THEN
|
||||||
IF noFocusMessage THEN
|
IF noFocusMessage THEN
|
||||||
clearStatusWindow 2
|
clearStatusWindow 2
|
||||||
clearStatusWindow 3
|
clearStatusWindow 3
|
||||||
setStatusMessage 2, "$DEBUG: <F4 = Stack> <F5 = Run> <F6 = Step Out> <F7 = Step Over> <F8 = Step>", 15
|
setStatusMessage 2, "<F4 = Call Stack> <F5 = Run> <F6 = Step Out> <F7 = Step Over> <F8 = Step Into>", 15
|
||||||
setStatusMessage 3, " <F9 = Toggle Breakpoint> <F10 = Clear All Breakpoints> <ESC = Abort>", 15
|
setStatusMessage 3, "<F9 = Toggle Breakpoint> <F10 = Clear all breakpoints>", 15
|
||||||
|
UpdateMenuHelpLine "Right-click the code for more options; hit ESC to abort."
|
||||||
noFocusMessage = 0
|
noFocusMessage = 0
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
IF noFocusMessage = 0 THEN
|
IF noFocusMessage = 0 THEN
|
||||||
clearStatusWindow 2
|
clearStatusWindow 2
|
||||||
clearStatusWindow 3
|
clearStatusWindow 3
|
||||||
setStatusMessage 2, "$DEBUG: Set focus to the IDE to control execution", 15
|
setStatusMessage 2, "Set focus to the IDE to control execution", 15
|
||||||
noFocusMessage = -1
|
noFocusMessage = -1
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
IF IdeDebugMode > 1 THEN RETURN
|
||||||
|
|
||||||
k& = _KEYHIT
|
k& = _KEYHIT
|
||||||
SELECT CASE k&
|
SELECT CASE k&
|
||||||
|
@ -6761,10 +6807,17 @@ SUB DebugMode
|
||||||
GOSUB UpdateDisplay
|
GOSUB UpdateDisplay
|
||||||
END IF
|
END IF
|
||||||
CASE 17408 'F10
|
CASE 17408 'F10
|
||||||
requestClearBreakpoints:
|
IF _KEYDOWN(100306) OR _KEYDOWN(100305) THEN
|
||||||
REDIM IdeBreakpoints(iden) AS _BYTE
|
requestUnskipAllLines:
|
||||||
cmd$ = "clear all breakpoints"
|
REDIM IdeSkipLines(iden) AS _BYTE
|
||||||
GOSUB SendCommand
|
cmd$ = "clear all skips"
|
||||||
|
GOSUB SendCommand
|
||||||
|
ELSE
|
||||||
|
requestClearBreakpoints:
|
||||||
|
REDIM IdeBreakpoints(iden) AS _BYTE
|
||||||
|
cmd$ = "clear all breakpoints"
|
||||||
|
GOSUB SendCommand
|
||||||
|
END IF
|
||||||
GOSUB UpdateDisplay
|
GOSUB UpdateDisplay
|
||||||
CASE 103, 71 'g, G
|
CASE 103, 71 'g, G
|
||||||
IF _KEYDOWN(100306) OR _KEYDOWN(100305) THEN
|
IF _KEYDOWN(100306) OR _KEYDOWN(100305) THEN
|
||||||
|
@ -8254,6 +8307,7 @@ SUB idefindagain (showFlags AS _BYTE)
|
||||||
IF x THEN
|
IF x THEN
|
||||||
ideselect = 1
|
ideselect = 1
|
||||||
idecx = x: idecy = y
|
idecx = x: idecy = y
|
||||||
|
searchStringFoundOn = idecy
|
||||||
ideselectx1 = x + LEN(s$): ideselecty1 = y
|
ideselectx1 = x + LEN(s$): ideselecty1 = y
|
||||||
|
|
||||||
IF idefindinvert THEN
|
IF idefindinvert THEN
|
||||||
|
@ -9773,6 +9827,10 @@ SUB ideshowtext
|
||||||
|
|
||||||
IF ShowLineNumbers THEN
|
IF ShowLineNumbers THEN
|
||||||
IF ShowLineNumbersUseBG THEN COLOR , 6
|
IF ShowLineNumbersUseBG THEN COLOR , 6
|
||||||
|
IF searchStringFoundOn > 0 AND searchStringFoundOn = l THEN
|
||||||
|
COLOR 13, 5
|
||||||
|
searchStringFoundOn = 0
|
||||||
|
END IF
|
||||||
IF vWatchOn = 1 AND IdeBreakpoints(l) <> 0 THEN COLOR , 4
|
IF vWatchOn = 1 AND IdeBreakpoints(l) <> 0 THEN COLOR , 4
|
||||||
IF vWatchOn = 1 AND IdeSkipLines(l) <> 0 THEN COLOR 14
|
IF vWatchOn = 1 AND IdeSkipLines(l) <> 0 THEN COLOR 14
|
||||||
_PRINTSTRING (2, y + 3), SPACE$(maxLineNumberLength)
|
_PRINTSTRING (2, y + 3), SPACE$(maxLineNumberLength)
|
||||||
|
@ -11824,6 +11882,16 @@ SUB idegotobox
|
||||||
ideselect = 0
|
ideselect = 0
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
|
SUB ideSetTCPPortBox
|
||||||
|
a2$ = str2$(idebaseTcpPort)
|
||||||
|
v$ = ideinputbox$("Base TCP/IP Port Number", "#Port number for $DEBUG mode", a2$, "0123456789", 45, 5)
|
||||||
|
IF v$ = "" THEN EXIT SUB
|
||||||
|
|
||||||
|
idebaseTcpPort = VAL(v$)
|
||||||
|
IF idebaseTcpPort = 0 THEN idebaseTcpPort = 9000
|
||||||
|
WriteConfigSetting generalSettingsSection$, "BaseTCPPort", str2$(idebaseTcpPort)
|
||||||
|
END SUB
|
||||||
|
|
||||||
FUNCTION idegetlinenumberbox(title$, initialValue&)
|
FUNCTION idegetlinenumberbox(title$, initialValue&)
|
||||||
a2$ = str2$(initialValue&)
|
a2$ = str2$(initialValue&)
|
||||||
IF a2$ = "0" THEN a2$ = ""
|
IF a2$ = "0" THEN a2$ = ""
|
||||||
|
@ -14483,6 +14551,8 @@ SUB IdeMakeContextualMenu
|
||||||
menuDesc$(m, i - 1) = "Removes all breakpoints"
|
menuDesc$(m, i - 1) = "Removes all breakpoints"
|
||||||
menu$(m, i) = "Toggle #Skip Line Ctrl+P": i = i + 1
|
menu$(m, i) = "Toggle #Skip Line Ctrl+P": i = i + 1
|
||||||
menuDesc$(m, i - 1) = "Sets/clears flag to skip line"
|
menuDesc$(m, i - 1) = "Sets/clears flag to skip line"
|
||||||
|
menu$(m, i) = "#Unskip All Lines Ctrl+F10": i = i + 1
|
||||||
|
menuDesc$(m, i - 1) = "Removes all line skip flags"
|
||||||
menu$(m, i) = "-": i = i + 1
|
menu$(m, i) = "-": i = i + 1
|
||||||
menu$(m, i) = "SUBs... F2": i = i + 1
|
menu$(m, i) = "SUBs... F2": i = i + 1
|
||||||
menuDesc$(m, i - 1) = "Displays a list of SUB/FUNCTION procedures"
|
menuDesc$(m, i - 1) = "Displays a list of SUB/FUNCTION procedures"
|
||||||
|
@ -15920,7 +15990,7 @@ FUNCTION BinaryFormatCheck% (pathToCheck$, pathSepToCheck$, fileToCheck$)
|
||||||
BinaryFormatCheck% = 1
|
BinaryFormatCheck% = 1
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
IF _FILEEXISTS("source/utilities/QB45BIN.bas") = 0 THEN
|
IF _FILEEXISTS("internal/support/converter/QB45BIN.bas") = 0 THEN
|
||||||
result = idemessagebox("Binary format", "Conversion utility not found. Cannot open QuickBASIC 4.5 binary format.", "")
|
result = idemessagebox("Binary format", "Conversion utility not found. Cannot open QuickBASIC 4.5 binary format.", "")
|
||||||
BinaryFormatCheck% = 1
|
BinaryFormatCheck% = 1
|
||||||
EXIT FUNCTION
|
EXIT FUNCTION
|
||||||
|
@ -15937,9 +16007,9 @@ FUNCTION BinaryFormatCheck% (pathToCheck$, pathSepToCheck$, fileToCheck$)
|
||||||
_PRINTSTRING (2, idewy - 3), "Preparing to convert..."
|
_PRINTSTRING (2, idewy - 3), "Preparing to convert..."
|
||||||
PCOPY 3, 0
|
PCOPY 3, 0
|
||||||
IF INSTR(_OS$, "WIN") THEN
|
IF INSTR(_OS$, "WIN") THEN
|
||||||
SHELL _HIDE "qb64 -x source/utilities/QB45BIN.bas -o internal/utilities/QB45BIN"
|
SHELL _HIDE "qb64 -x internal/support/converter/QB45BIN.bas -o internal/utilities/QB45BIN"
|
||||||
ELSE
|
ELSE
|
||||||
SHELL _HIDE "./qb64 -x ./source/utilities/QB45BIN.bas -o ./internal/utilities/QB45BIN"
|
SHELL _HIDE "./qb64 -x ./internal/support/converter/QB45BIN.bas -o ./internal/utilities/QB45BIN"
|
||||||
END IF
|
END IF
|
||||||
IF _FILEEXISTS(convertUtility$) THEN GOTO ConvertIt
|
IF _FILEEXISTS(convertUtility$) THEN GOTO ConvertIt
|
||||||
clearStatusWindow 0
|
clearStatusWindow 0
|
||||||
|
|
|
@ -119,7 +119,7 @@ TYPE usedVarList
|
||||||
name AS STRING
|
name AS STRING
|
||||||
END TYPE
|
END TYPE
|
||||||
|
|
||||||
REDIM SHARED usedVariableList(1000) AS usedVarList, totalVariablesCreated AS LONG
|
DIM SHARED totalVariablesCreated AS LONG
|
||||||
DIM SHARED bypassNextVariable AS _BYTE
|
DIM SHARED bypassNextVariable AS _BYTE
|
||||||
DIM SHARED totalWarnings AS LONG, warningListItems AS LONG, lastWarningHeader AS STRING
|
DIM SHARED totalWarnings AS LONG, warningListItems AS LONG, lastWarningHeader AS STRING
|
||||||
DIM SHARED duplicateConstWarning AS _BYTE, warningsissued AS _BYTE
|
DIM SHARED duplicateConstWarning AS _BYTE, warningsissued AS _BYTE
|
||||||
|
@ -1456,6 +1456,7 @@ SelectCaseCounter = 0
|
||||||
ExecCounter = 0
|
ExecCounter = 0
|
||||||
UserDefineCount = 7
|
UserDefineCount = 7
|
||||||
totalVariablesCreated = 0
|
totalVariablesCreated = 0
|
||||||
|
REDIM SHARED usedVariableList(1000) AS usedVarList
|
||||||
totalWarnings = 0
|
totalWarnings = 0
|
||||||
duplicateConstWarning = 0
|
duplicateConstWarning = 0
|
||||||
emptySCWarning = 0
|
emptySCWarning = 0
|
||||||
|
@ -1651,11 +1652,11 @@ DO
|
||||||
forceIncludeFromRoot$ = ""
|
forceIncludeFromRoot$ = ""
|
||||||
IF vWatchOn THEN
|
IF vWatchOn THEN
|
||||||
addingvWatch = 1
|
addingvWatch = 1
|
||||||
IF firstLine <> 0 THEN forceIncludeFromRoot$ = "source\utilities\vwatch\vwatch.bi"
|
IF firstLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch.bi"
|
||||||
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "source\utilities\vwatch\vwatch.bm"
|
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch.bm"
|
||||||
ELSE
|
ELSE
|
||||||
'IF firstLine <> 0 THEN forceIncludeFromRoot$ = "source\embed\header_stub.bas"
|
'IF firstLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch_stub.bi"
|
||||||
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "source\utilities\vwatch\vwatch_stub.bm"
|
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch_stub.bm"
|
||||||
END IF
|
END IF
|
||||||
firstLine = 0: lastLine = 0
|
firstLine = 0: lastLine = 0
|
||||||
IF LEN(forceIncludeFromRoot$) THEN GOTO forceInclude_prepass
|
IF LEN(forceIncludeFromRoot$) THEN GOTO forceInclude_prepass
|
||||||
|
@ -1699,12 +1700,12 @@ DO
|
||||||
temp$ = LTRIM$(RTRIM$(UCASE$(wholestv$)))
|
temp$ = LTRIM$(RTRIM$(UCASE$(wholestv$)))
|
||||||
|
|
||||||
IF temp$ = "$COLOR:0" THEN
|
IF temp$ = "$COLOR:0" THEN
|
||||||
addmetainclude$ = getfilepath$(COMMAND$(0)) + "source" + pathsep$ + "utilities" + pathsep$ + "color0.bi"
|
addmetainclude$ = getfilepath$(COMMAND$(0)) + "internal" + pathsep$ + "support" + pathsep$ + "color" + pathsep$ + "color0.bi"
|
||||||
GOTO finishedlinepp
|
GOTO finishedlinepp
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF temp$ = "$COLOR:32" THEN
|
IF temp$ = "$COLOR:32" THEN
|
||||||
addmetainclude$ = getfilepath$(COMMAND$(0)) + "source" + pathsep$ + "utilities" + pathsep$ + "color32.bi"
|
addmetainclude$ = getfilepath$(COMMAND$(0)) + "internal" + pathsep$ + "support" + pathsep$ + "color" + pathsep$ + "color32.bi"
|
||||||
GOTO finishedlinepp
|
GOTO finishedlinepp
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -2873,11 +2874,11 @@ DO
|
||||||
forceIncludeFromRoot$ = ""
|
forceIncludeFromRoot$ = ""
|
||||||
IF vWatchOn THEN
|
IF vWatchOn THEN
|
||||||
addingvWatch = 1
|
addingvWatch = 1
|
||||||
IF firstLine <> 0 THEN forceIncludeFromRoot$ = "source\utilities\vwatch\vwatch.bi"
|
IF firstLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch.bi"
|
||||||
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "source\utilities\vwatch\vwatch.bm"
|
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch.bm"
|
||||||
ELSE
|
ELSE
|
||||||
'IF firstLine <> 0 THEN forceIncludeFromRoot$ = "source\embed\header_stub.bas"
|
'IF firstLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch_stub.bi"
|
||||||
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "source\utilities\vwatch\vwatch_stub.bm"
|
IF lastLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch_stub.bm"
|
||||||
END IF
|
END IF
|
||||||
firstLine = 0: lastLine = 0
|
firstLine = 0: lastLine = 0
|
||||||
IF LEN(forceIncludeFromRoot$) THEN GOTO forceInclude
|
IF LEN(forceIncludeFromRoot$) THEN GOTO forceInclude
|
||||||
|
@ -3089,14 +3090,14 @@ DO
|
||||||
|
|
||||||
IF a3u$ = "$COLOR:0" THEN
|
IF a3u$ = "$COLOR:0" THEN
|
||||||
layout$ = SCase$("$Color:0")
|
layout$ = SCase$("$Color:0")
|
||||||
addmetainclude$ = getfilepath$(COMMAND$(0)) + "source" + pathsep$ + "utilities" + pathsep$ + "color0.bi"
|
addmetainclude$ = getfilepath$(COMMAND$(0)) + "internal" + pathsep$ + "support" + pathsep$ + "color" + pathsep$ + "color0.bi"
|
||||||
layoutdone = 1
|
layoutdone = 1
|
||||||
GOTO finishednonexec
|
GOTO finishednonexec
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF a3u$ = "$COLOR:32" THEN
|
IF a3u$ = "$COLOR:32" THEN
|
||||||
layout$ = SCase$("$Color:32")
|
layout$ = SCase$("$Color:32")
|
||||||
addmetainclude$ = getfilepath$(COMMAND$(0)) + "source" + pathsep$ + "utilities" + pathsep$ + "color32.bi"
|
addmetainclude$ = getfilepath$(COMMAND$(0)) + "internal" + pathsep$ + "support" + pathsep$ + "color" + pathsep$ + "color32.bi"
|
||||||
layoutdone = 1
|
layoutdone = 1
|
||||||
GOTO finishednonexec
|
GOTO finishednonexec
|
||||||
END IF
|
END IF
|
||||||
|
@ -8926,8 +8927,8 @@ 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 THEN
|
IF vWatchOn = 1 AND NoChecks = 0 THEN
|
||||||
vWatchAddLabel linenumber, 0
|
|
||||||
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_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;"
|
||||||
|
vWatchAddLabel linenumber, 0
|
||||||
ELSE
|
ELSE
|
||||||
PRINT #12, "close_program=1;"
|
PRINT #12, "close_program=1;"
|
||||||
PRINT #12, "end();"
|
PRINT #12, "end();"
|
||||||
|
|
|
@ -136,6 +136,8 @@ SUB vwatch (localVariables AS _OFFSET)
|
||||||
vwatch_skiplines(CVL(value$)) = 0
|
vwatch_skiplines(CVL(value$)) = 0
|
||||||
CASE "clear all breakpoints"
|
CASE "clear all breakpoints"
|
||||||
REDIM vwatch_breakpoints(UBOUND(vwatch_breakpoints)) AS _BYTE
|
REDIM vwatch_breakpoints(UBOUND(vwatch_breakpoints)) AS _BYTE
|
||||||
|
CASE "clear all skips"
|
||||||
|
REDIM vwatch_skiplines(UBOUND(vwatch_skiplines)) AS _BYTE
|
||||||
END SELECT
|
END SELECT
|
||||||
|
|
||||||
IF vwatch_skiplines(vwatch_linenumber) THEN vwatch_goto = -vwatch_linenumber: EXIT SUB
|
IF vwatch_skiplines(vwatch_linenumber) THEN vwatch_goto = -vwatch_linenumber: EXIT SUB
|
||||||
|
@ -206,6 +208,8 @@ SUB vwatch (localVariables AS _OFFSET)
|
||||||
vwatch_breakpoints(CVL(value$)) = 0
|
vwatch_breakpoints(CVL(value$)) = 0
|
||||||
CASE "clear all breakpoints"
|
CASE "clear all breakpoints"
|
||||||
REDIM vwatch_breakpoints(UBOUND(vwatch_breakpoints)) AS _BYTE
|
REDIM vwatch_breakpoints(UBOUND(vwatch_breakpoints)) AS _BYTE
|
||||||
|
CASE "clear all skips"
|
||||||
|
REDIM vwatch_skiplines(UBOUND(vwatch_skiplines)) AS _BYTE
|
||||||
CASE "call stack"
|
CASE "call stack"
|
||||||
'send call stack history"
|
'send call stack history"
|
||||||
GOSUB SendCallStack
|
GOSUB SendCallStack
|
||||||
|
|
Loading…
Reference in a new issue