Revision 64
changed layout of debugger view, added some sort of logic for not showing evals on tooltips for keywords,
add debugger restart logic, fixed some icon assignments, fixed off by one line error in breakpoint activation
AppSrc/VdfSplat.src | ||
---|---|---|
163 | 163 |
End |
164 | 164 |
End_Procedure // doOpenFile |
165 | 165 |
|
166 |
Procedure DoInitializeParameters |
|
167 |
Set piDebugfileVersion To 0 |
|
168 |
//Set phoDebugger To 0 |
|
169 |
Set psApplication Of ghoApplication To "" |
|
170 |
End_Procedure |
|
171 |
|
|
172 |
// |
|
173 |
// Locates the debug file for the application binary passed. |
|
174 |
// Returns TRUE if found and sets property piDebugFileVersion |
|
175 |
// |
|
176 |
Function ParseApplicationDebugFile String sApplication Returns Boolean |
|
177 |
Boolean bExists |
|
178 |
Integer iRuntime |
|
179 |
String sExt |
|
180 |
String sDebugfile |
|
181 |
|
|
182 |
Get ParseFileExtension sApplication To sExt |
|
183 |
Move (Replace("."+sExt,sApplication,".dbg")) To sDebugfile |
|
184 |
Get vFilePathExists sDebugfile to bExists |
|
185 |
If (bExists=false) Begin |
|
186 |
Send Warning_Box ("Sorry but for the executable chosing the corresponding debug file\n"+; |
|
187 |
sDebugfile+"\ncould not be located.\n\nPlease select again.") ; |
|
188 |
"VdfSplat can't do that" |
|
189 |
End |
|
190 |
Else Begin |
|
191 |
Get ReadRuntimeVersion sDebugfile To iRuntime |
|
192 |
If (iRuntime=0) Begin |
|
193 |
Move False To bExists |
|
194 |
End |
|
195 |
Else Begin |
|
196 |
Set piDebugfileVersion To iRuntime |
|
197 |
End |
|
198 |
End |
|
199 |
|
|
200 |
Function_Return bExists |
|
201 |
End_Function |
|
202 |
|
|
166 | 203 |
Procedure doDebugRun |
167 | 204 |
String sApplication |
168 |
String sExt |
|
169 |
String sDebugfile |
|
170 |
Integer iRuntime |
|
171 | 205 |
Boolean bOpen |
172 | 206 |
Boolean bExists |
207 |
Boolean bRestartMode |
|
173 | 208 |
Handle hoDebug |
174 | 209 |
Handle hoParent |
175 | 210 |
Handle hoDialog |
176 | 211 |
|
177 |
Set piDebugfileVersion To 0 |
|
178 |
|
|
179 | 212 |
Get psApplication of ghoApplication To sApplication |
180 | 213 |
If (sApplication = "") Begin |
181 | 214 |
Move (oOpenProgramDialog(Self)) To hoDialog |
... | ... | |
193 | 226 |
// Oh still no app? Use our hardcoded path |
194 | 227 |
Procedure_Return |
195 | 228 |
End |
196 |
Get ParseFileExtension sApplication To sExt |
|
197 |
Move (Replace("."+sExt,sApplication,".dbg")) To sDebugfile |
|
198 |
Get vFilePathExists sDebugfile to bExists |
|
199 |
If (bExists=false) Begin |
|
200 |
Send Warning_Box ("Sorry but for the executable chosing the corresponding debug file\n"+; |
|
201 |
sDebugfile+"\ncould not be located.\n\nPlease select again.") ; |
|
202 |
"VdfSplat can't do that" |
|
203 |
End |
|
204 |
Else Begin |
|
205 |
Get ReadRuntimeVersion sDebugfile To iRuntime |
|
206 |
If (iRuntime=0) Begin |
|
207 |
Move False To bExists |
|
229 |
Get ParseApplicationDebugFile sApplication To bExists |
|
230 |
|
|
231 |
Get phoDebugger to hoDebug |
|
232 |
If (hoDebug) Begin |
|
233 |
Get pbDebugRestart of hoDebug to bRestartMode |
|
234 |
If (bRestartMode) Begin |
|
235 |
Send Destroy of hoDebug |
|
236 |
Move 0 To hoDebug |
|
208 | 237 |
End |
209 | 238 |
End |
210 |
|
|
211 |
Get phoDebugger to hoDebug |
|
212 | 239 |
If (bExists and hoDebug=0) Begin |
213 | 240 |
// |
214 | 241 |
|
215 | 242 |
Get phoDebuggerHost To hoParent |
216 |
Set piDebugfileVersion To iRuntime |
|
217 |
Get Create Of hoParent U_cDebuggerEngine To hoDebug |
|
243 |
Get Create Of hoParent (RefClass(cDebuggerEngine)) To hoDebug |
|
218 | 244 |
If (hoDebug) Begin |
219 | 245 |
Send DoCreateEngine of hoDebug |
220 | 246 |
End |
... | ... | |
251 | 277 |
End_Procedure |
252 | 278 |
|
253 | 279 |
Procedure doStopDebug |
254 |
Handle hoDebug |
|
280 |
Boolean bPaused |
|
281 |
Boolean bBreakMode |
|
282 |
Handle hoDebug |
|
255 | 283 |
|
256 | 284 |
Get phoDebugger to hoDebug |
257 | 285 |
If (hoDebug) Begin |
286 |
Get pbLimitedBreakMode of hoDebug to bBreakMode |
|
287 |
Get HasProgramPaused To bPaused |
|
288 |
If (bPaused) Begin |
|
289 |
//Send doDebugContinue |
|
290 |
End |
|
258 | 291 |
Send ComStopProgram of hoDebug |
259 | 292 |
Send ComUpdateViews Of hoDebug |
260 |
Set psApplication of ghoApplication To "" |
|
293 |
If (bBreakMode=False) Begin |
|
294 |
// You cannot destroy the debugger on here as the messageloop has to run to get the debuggee back to run |
|
295 |
// so killing it here would be out of sync with what you want. |
|
296 |
//Send Destroy of hoDebug |
|
297 |
Send DoInitializeParameters |
|
298 |
End |
|
261 | 299 |
End |
262 | 300 |
End_Procedure // doStopDebug |
263 | 301 |
|
302 |
Procedure DoRestartDebug |
|
303 |
String sApplication |
|
304 |
|
|
305 |
Get psApplication of ghoApplication To sApplication |
|
306 |
Set pbDebugRestart of (phoDebugger(Self)) to True |
|
307 |
Send DoStopDebug |
|
308 |
//Sleep 1 |
|
309 |
Set psApplication of ghoApplication To sApplication |
|
310 |
End_Procedure |
|
311 |
|
|
264 | 312 |
Procedure doDebugPause |
265 | 313 |
Handle hoDebug |
266 | 314 |
|
... | ... | |
390 | 438 |
// |
391 | 439 |
// A program can only be paused after it has started |
392 | 440 |
// This is used as an indication that we can step through the source |
393 |
// |
|
441 |
// The property pbProgramPaused is set on both a breakpoint and on a Pause
|
|
394 | 442 |
Function HasProgramPaused Returns Boolean |
395 | 443 |
Boolean bPaused |
396 | 444 |
Boolean bStarted |
AppSrc/cDebugCJMenuItemClasses.pkg | ||
---|---|---|
205 | 205 |
{ OverrideProperty=psCaption InitialValue=CS_CaptionRestartDebug} |
206 | 206 |
{ OverrideProperty=psToolTip InitialValue=CS_ToolTipRestartDebug} |
207 | 207 |
{ OverrideProperty=psDescription InitialValue=CS_DescRestartDebug} |
208 |
{ OverrideProperty=psImage InitialValue="run_exc.ico" }
|
|
208 |
{ OverrideProperty=psImage InitialValue="restart_co.ico" }
|
|
209 | 209 |
|
210 | 210 |
Class cCJRestartDebugMenuItem is a cCJDebugMenuItem |
211 | 211 |
|
... | ... | |
214 | 214 |
Set psCaption To CS_CaptionRestartDebug |
215 | 215 |
Set psToolTip To CS_ToolTipRestartDebug |
216 | 216 |
Set psDescription To CS_DescRestartDebug |
217 |
Set psImage To "term_restart.ico"
|
|
217 |
Set psImage To "restart_co.ico"
|
|
218 | 218 |
//Set psImageDisabled To "run_excd.ico" |
219 | 219 |
Set piShortcutKey To xtpKey_Ctrl VK_F5 |
220 | 220 |
End_Procedure |
221 | 221 |
|
222 | 222 |
Procedure OnExecute Variant vCommandBarControl |
223 |
Send doStopDebug |
|
224 |
Send doStartDebug |
|
223 |
Send doRestartDebug |
|
225 | 224 |
End_Procedure |
226 | 225 |
|
227 | 226 |
Function IsEnabled Returns Boolean |
... | ... | |
450 | 449 |
{ OverrideProperty=psCaption InitialValue=CS_CaptionRemoveBreakpoint} |
451 | 450 |
{ OverrideProperty=psToolTip InitialValue=CS_ToolTipRemoveBreakpoint} |
452 | 451 |
{ OverrideProperty=psDescription InitialValue=CS_DescRemoveBreakpoint } |
453 |
{ OverrideProperty=psImage InitialValue="brkp_obj.ico" }
|
|
452 |
{ OverrideProperty=psImage InitialValue="skip_brkp.ico" }
|
|
454 | 453 |
Class cCJRemoveBreakpointMenuItem is a cCJDebugMenuItem |
455 | 454 |
|
456 | 455 |
Procedure Construct_Object |
AppSrc/cDebuggerEngine.pkg | ||
---|---|---|
119 | 119 |
Forward Get Msg_Entering To Rval // Do Normal Entering |
120 | 120 |
// if entering is ok and single item check shadow state of that item. |
121 | 121 |
If (Rval=0) Begin |
122 |
Get Item_Count To iCount |
|
123 |
Get Current_Item To iItem |
|
122 |
// Get Item_Count To iCount
|
|
123 |
// Get Current_Item To iItem
|
|
124 | 124 |
// Showln ("entering stack "+trim(iCount)*"current"*trim(iItem)) |
125 | 125 |
// Get Shadow_State Item 0 To Rval |
126 | 126 |
End |
... | ... | |
279 | 279 |
Property Boolean pbEngineActive False |
280 | 280 |
Property Boolean pbProgramStarted False |
281 | 281 |
Property Boolean pbProgramPaused False |
282 |
Property Boolean pbLimitedBreakMode False |
|
283 |
Property Boolean pbDebugRestart False |
|
282 | 284 |
Property String[] pAllMessages |
283 | 285 |
Property String[] pAllProperties |
286 |
Property String[] pLanguageKeywords |
|
284 | 287 |
Property tBreakPoints[] pBreakPoints |
285 | 288 |
|
286 | 289 |
Set Name To "oDebuggerEngine" |
... | ... | |
367 | 370 |
Set pAllProperties to AllProperties |
368 | 371 |
End_Procedure |
369 | 372 |
|
373 |
Function IsLanguageKeyword String sKeyword Returns Boolean |
|
374 |
Boolean bIsKeyword |
|
375 |
Integer iCount |
|
376 |
Integer iKeyword |
|
377 |
String[] Keywords |
|
378 |
|
|
379 |
Move false to bIsKeyword |
|
380 |
Move (lowercase(sKeyWord)) To sKeyword |
|
381 |
If (sKeyword<>"") Begin |
|
382 |
Get pLanguageKeywords To Keywords |
|
383 |
Move (SizeOfArray(Keywords)) To iCount |
|
384 |
Decrement iCount |
|
385 |
For iKeyWord From 0 To iCount |
|
386 |
If (Keywords[iKeyword]=sKeyword) Begin |
|
387 |
Move True To bIsKeyword |
|
388 |
Move iCount To iKeyword // stop |
|
389 |
End |
|
390 |
Loop |
|
391 |
End |
|
392 |
Function_Return bIsKeyword |
|
393 |
End_Function |
|
394 |
|
|
370 | 395 |
Function IsVariableProperty String sVariable Returns Boolean |
371 | 396 |
Integer iCount |
372 | 397 |
Integer iProp |
... | ... | |
753 | 778 |
// Occurs after the program exits |
754 | 779 |
Procedure OnComProgramExit |
755 | 780 |
Boolean bStartedFromCLI |
756 |
String[] AllMessages
|
|
757 |
String[] AllProperties
|
|
781 |
Boolean bRestartMode
|
|
782 |
String[] Empty
|
|
758 | 783 |
Set pbProgramStarted To False |
759 | 784 |
Set pbProgramPaused To False |
760 | 785 |
Send SaveBreakPointsToDisk |
761 | 786 |
Set ApplicationFileName To "" |
762 |
Move (ResizeArray(Allmessages,0)) To AllMessages |
|
763 |
Move (ResizeArray(AllProperties,0)) To AllProperties |
|
764 |
Set pAllMessages to AllMessages |
|
765 |
Set pAllProperties to AllProperties |
|
766 |
Get pbStartedFromCLI of ghoApplication To bStartedFromCLI |
|
767 |
If (bStartedFromCli) Begin |
|
768 |
// debug session was started from the command line. |
|
769 |
// Stopping the debug session normally should stop the debugger as well. |
|
770 |
Send Exit_Application |
|
787 |
Move (ResizeArray(Empty,0)) To Empty |
|
788 |
Set pAllMessages To Empty |
|
789 |
Set pAllProperties To Empty |
|
790 |
Set pLanguageKeywords To Empty |
|
791 |
Get pbDebugRestart to bRestartMode |
|
792 |
If (bRestartMode) Begin |
|
793 |
Send DoDebugRun |
|
771 | 794 |
End |
795 |
Else Begin |
|
796 |
Get pbStartedFromCLI of ghoApplication To bStartedFromCLI |
|
797 |
If (bStartedFromCli) Begin |
|
798 |
// debug session was started from the command line. |
|
799 |
// Stopping the debug session normally should stop the debugger as well. |
|
800 |
Send Exit_Application |
|
801 |
End |
|
802 |
End |
|
772 | 803 |
End_Procedure |
773 | 804 |
|
774 | 805 |
// Occurs if there is an error starting the program |
... | ... | |
816 | 847 |
Send SetDebuggerAsForegroundApp |
817 | 848 |
End |
818 | 849 |
Send doOpenSourceFileAtLine of hoEditor llfile llline |
819 |
Send doActivateCallStack // only displays if exists or not.
|
|
850 |
Send doActivateDebugPanels // only displays if exists or not.
|
|
820 | 851 |
End |
821 | 852 |
End_Procedure |
822 | 853 |
|
823 | 854 |
// |
824 | 855 |
// Occurs when the program execution is paused |
825 | 856 |
Procedure OnComProgramPaused String llfile UInteger llline Boolean lllimitedBreakMode |
826 |
Set pbProgramPaused To True |
|
857 |
Set pbProgramPaused To True |
|
858 |
Set pbLimitedBreakMode To lllimitedBreakMode |
|
827 | 859 |
Send OnProgramPaused llfile llline lllimitedBreakMode |
828 | 860 |
End_Procedure |
829 | 861 |
|
830 | 862 |
// Occurs when the program execution resumes |
831 | 863 |
Procedure OnComProgramContinue |
832 |
Set pbProgramPaused To False |
|
864 |
Set pbProgramPaused To False |
|
865 |
Set pbLimitedBreakMode To False |
|
833 | 866 |
End_Procedure |
834 | 867 |
|
835 | 868 |
// Occurs after a change requiring views to be refreshed |
... | ... | |
871 | 904 |
//Send Info_box lldescription "WebApp FATAL Error" |
872 | 905 |
Showln lleventid lltext |
873 | 906 |
End_Procedure |
907 |
|
|
908 |
Procedure AddKeyword String sWord |
|
909 |
Integer iCount |
|
910 |
String[] Keywords |
|
911 |
|
|
912 |
Get pLanguageKeywords To Keywords |
|
913 |
Move (SizeOfArray(Keywords)) To iCount |
|
914 |
Move (Lowercase(sWord)) To Keywords[iCount] |
|
915 |
Set pLanguageKeywords To Keywords |
|
916 |
End_Procedure |
|
917 |
|
|
918 |
// Language keywords are not evaluated in the tooltip |
|
919 |
Procedure AddLanguageKeywords |
|
920 |
Send AddKeyword "End_Function" |
|
921 |
Send AddKeyword "End_Procedure" |
|
922 |
Send AddKeyword "Function" |
|
923 |
Send AddKeyword "Move" |
|
924 |
Send AddKeyword "Procedure" |
|
925 |
Send AddKeyword "Send" |
|
926 |
Send AddKeyword "Showln" |
|
927 |
Send AddKeyword "To" |
|
928 |
Send AddKeyword "UChar[]" |
|
929 |
End_Procedure |
|
874 | 930 |
|
875 | 931 |
|
876 | 932 |
Procedure doCreateCallStack |
... | ... | |
965 | 1021 |
If (hoVariables) Begin |
966 | 1022 |
Set phoLocalVariables To hoVariables |
967 | 1023 |
Set Name Of hoVariables To "oLocalVariables" |
968 |
Send CreateObjectCallback of hoParent hoVariables |
|
969 | 1024 |
|
970 | 1025 |
Send CreateComObject Of hoVariables |
971 | 1026 |
Get IsComObjectCreated Of hoVariables To bCreated |
972 | 1027 |
If (bCreated) Begin |
973 | 1028 |
Set ComWindowType Of hoVariables To 0 // locals |
974 | 1029 |
End |
1030 |
Send CreateObjectCallback of hoParent hoVariables |
|
975 | 1031 |
End |
976 | 1032 |
End |
977 | 1033 |
End_Procedure // doCreateLocalVariables |
... | ... | |
996 | 1052 |
End_Procedure // doCreateTables |
997 | 1053 |
|
998 | 1054 |
|
999 |
|
|
1000 |
Procedure doActivateCallStack
|
|
1055 |
// we MUST send activate to the debug panels to make them display. |
|
1056 |
Procedure doActivateDebugPanels
|
|
1001 | 1057 |
Handle hoCallStack |
1058 |
Handle hoLocalVars |
|
1059 |
Handle hoGlobalVars |
|
1002 | 1060 |
Boolean bCreated |
1003 | 1061 |
|
1004 | 1062 |
Get phoCallStack To hoCallStack |
1005 | 1063 |
If (hoCallStack) Begin |
1006 | 1064 |
Get IsComObjectCreated Of hoCallStack To bCreated |
1007 | 1065 |
If (bCreated) Begin |
1008 |
Send Activate of hoCallStack // we MUST send activate to the callstack to make it display itself
|
|
1066 |
Send Activate of hoCallStack |
|
1009 | 1067 |
End |
1010 | 1068 |
End |
1011 |
End_Procedure // doActivateCallStack |
|
1012 | 1069 |
|
1070 |
Get phoLocalVariables To hoLocalVars |
|
1071 |
If (hoLocalVars) Begin |
|
1072 |
Get IsComObjectCreated Of hoLocalVars To bCreated |
|
1073 |
If (bCreated) Begin |
|
1074 |
Send Activate of hoLocalVars |
|
1075 |
End |
|
1076 |
End |
|
1013 | 1077 |
|
1078 |
Get phoGlobalVariables To hoGlobalVars |
|
1079 |
If (hoGlobalVars) Begin |
|
1080 |
Get IsComObjectCreated Of hoGlobalVars To bCreated |
|
1081 |
If (bCreated) Begin |
|
1082 |
Send Activate of hoGlobalVars |
|
1083 |
End |
|
1084 |
End |
|
1085 |
End_Procedure |
|
1086 |
|
|
1087 |
|
|
1014 | 1088 |
|
1015 | 1089 |
Procedure DoCreateEngine |
1016 | 1090 |
Boolean bCreated |
... | ... | |
1037 | 1111 |
Send doCreateLocalVariables |
1038 | 1112 |
|
1039 | 1113 |
Send doCreateTablesWindow |
1114 |
|
|
1115 |
Send AddLanguageKeywords |
|
1040 | 1116 |
End_Procedure // DoCreateEngine |
1041 | 1117 |
|
1042 | 1118 |
|
AppSrc/cSplatCodeMax.pkg | ||
---|---|---|
47 | 47 |
Integer iVoid |
48 | 48 |
|
49 | 49 |
Get AddImage "brkp_obj.ico" To iVoid // bit 1 // seems the first image is ignored as a margin image |
50 |
Get AddImage "inst_ptr.ico" To iVoid // bit 2
|
|
50 |
Get AddImage "inst_ptr_top.ico" To iVoid // bit 2
|
|
51 | 51 |
Get AddImage "brkp_obj.ico" To iVoid // bit 3 |
52 |
Get AddImage "inst_ptr_top.ico" To iVoid // bit 4
|
|
52 |
Get AddImage "inst_ptr.ico" To iVoid // bit 4
|
|
53 | 53 |
End_Procedure |
54 | 54 |
End_Class |
55 | 55 |
|
... | ... | |
426 | 426 |
Boolean bIsProperty |
427 | 427 |
Boolean bIsProcedure |
428 | 428 |
Boolean bIsObject |
429 |
Boolean bIsKeyword |
|
430 |
Boolean bPaused |
|
429 | 431 |
Boolean bOK |
430 | 432 |
|
431 | 433 |
// Does not always return what we need |
... | ... | |
438 | 440 |
Move "" To sResult |
439 | 441 |
Move "" To sType |
440 | 442 |
Move False To bIsObject |
441 |
Get IsVariableProperty of hoDebugger sWord To bIsProperty |
|
442 |
If (bIsProperty) Begin |
|
443 |
Get ObjectForProperty sWord llLine llColumn to sTargetObject |
|
444 |
Move (sWord+"("+sTargetObject+")") To sWord |
|
445 |
Move "Property " To sType |
|
446 |
End |
|
447 |
Else Begin |
|
448 |
Get IsVariableProcedure Of hoDebugger sWord To bIsProcedure |
|
449 |
If (bIsProcedure) Begin |
|
450 |
Move "Procedure " To sType |
|
451 |
End |
|
452 |
Else Begin |
|
453 |
If (lowercase(sWord)="self") Begin |
|
454 |
Move "Object " To sType |
|
455 |
Move True To bIsObject |
|
443 |
Get pbProgramPaused Of hoDebugger To bPaused |
|
444 |
If (bPaused) Begin |
|
445 |
Get IsLanguageKeyword of hoDebugger sWord To bIsKeyword // |
|
446 |
If (bIsKeyword=false) Begin |
|
447 |
Get IsVariableProperty of hoDebugger sWord To bIsProperty |
|
448 |
If (bIsProperty) Begin |
|
449 |
Get ObjectForProperty sWord llLine llColumn to sTargetObject |
|
450 |
Move (sWord+"("+sTargetObject+")") To sWord |
|
451 |
Move "Property " To sType |
|
456 | 452 |
End |
457 |
End |
|
458 |
End |
|
459 |
Move ("Evaluating "+sType+"'"+sWord+"' results in"+character(10)) To llTipText |
|
460 |
If (bIsProcedure) Begin |
|
461 |
Move "Not evaluating methods." To sResult |
|
462 |
End |
|
463 |
Else Begin |
|
464 |
Get ComEval of hoDebugger sWord (&sResult) to bOK |
|
465 |
End |
|
466 |
If (bOK) Begin |
|
467 |
If (bIsObject) Begin |
|
468 |
Move sResult To sObjectID |
|
469 |
Move "" To sObjectName |
|
470 |
Get ComEval of hoDebugger ("name("+sObjectID+")") (&sObjectName) to bOK |
|
453 |
Else Begin |
|
454 |
Get IsVariableProcedure Of hoDebugger sWord To bIsProcedure |
|
455 |
If (bIsProcedure) Begin |
|
456 |
Move "Procedure " To sType |
|
457 |
End |
|
458 |
Else Begin |
|
459 |
If (lowercase(sWord)="self") Begin |
|
460 |
Move "Object " To sType |
|
461 |
Move True To bIsObject |
|
462 |
End |
|
463 |
End |
|
464 |
End |
|
465 |
Move ("Evaluating "+sType+"'"+sWord+"' results in"+character(10)) To llTipText |
|
466 |
If (bIsProcedure) Begin |
|
467 |
Move "Not evaluating methods." To sResult |
|
468 |
End |
|
469 |
Else Begin |
|
470 |
Get ComEval of hoDebugger sWord (&sResult) to bOK |
|
471 |
End |
|
471 | 472 |
If (bOK) Begin |
472 |
Move (sResult+" ("+sObjectName+") ") To sResult |
|
473 |
If (bIsObject) Begin |
|
474 |
Move sResult To sObjectID |
|
475 |
Move "" To sObjectName |
|
476 |
Get ComEval of hoDebugger ("name("+sObjectID+")") (&sObjectName) to bOK |
|
477 |
If (bOK) Begin |
|
478 |
Move (sResult+" ("+sObjectName+") ") To sResult |
|
479 |
End |
|
480 |
End |
|
481 |
Move (sResult+character(10)+character(10)+"Eval OK") To sResult |
|
473 | 482 |
End |
483 |
Else Begin |
|
484 |
Move (sResult+character(10)+character(10)+"Eval Failed") To sResult |
|
485 |
End |
|
474 | 486 |
End |
475 |
Move (sResult+character(10)+character(10)+"Eval OK") To sResult |
|
487 |
Else Begin |
|
488 |
Move ("Keyword "+sWord) To sResult |
|
489 |
End |
|
476 | 490 |
End |
477 | 491 |
Else Begin |
478 |
Move (sResult+character(10)+character(10)+"Eval Failed") To sResult
|
|
492 |
Move sWord To sResult
|
|
479 | 493 |
End |
480 | 494 |
Move (sResult+", line="+trim(llLine+1)*", column="+Trim(llColumn+1)) To sResult |
481 | 495 |
End |
... | ... | |
550 | 564 |
|
551 | 565 |
Procedure doOpenSourceFileAtLine String sFileName Integer iLine |
552 | 566 |
Integer eBkLineColor |
567 |
Integer iTopMostLine |
|
553 | 568 |
Boolean bVisible |
554 | 569 |
Boolean bScrollup |
555 | 570 |
|
556 | 571 |
Move false to bScrollup |
557 | 572 |
Send doOpenSourceFile sFileName |
558 |
Set piCurrentLine To iLine |
|
559 |
If (iLine>10) Begin |
|
560 |
Move (iLine-4) To iLine // scroll up a bit so we can see context |
|
573 |
Set piCurrentLine to iLine |
|
574 |
Move iLine to iTopMostLine |
|
575 |
If (iLine>5) Begin |
|
576 |
Move (iLine-4) to iTopMostLine // scroll up a bit so we can see context |
|
561 | 577 |
Move true to bScrollup |
562 | 578 |
End |
563 |
Send ComSetTopIndex 0 iLine |
|
564 |
If (bScrollup) Move (iLine+3) to iLine |
|
579 |
Send ComSetTopIndex 0 iTopMostLine |
|
580 |
If (iLine>=0) Begin |
|
581 |
Send ComSetMarginImages (iLine-1) ICO_Inst_ptr //ICO_Brkp_obj// 2 |
|
582 |
//Set psFilename of oCodeMax To sFileName |
|
583 |
// Make it visible to the user where we are |
|
584 |
//Move True to bVisible |
|
585 |
//Send ComSelectLine of oCodeMax iLine bVisible |
|
586 |
Move (RGB(223,253,193)) to eBkLineColor |
|
587 |
Send ComSetLineColor (iLine-1) eBkLineColor //clYellow |
|
588 |
End |
|
565 | 589 |
|
566 |
Send ComSetMarginImages iLine ICO_Inst_ptr //ICO_Brkp_obj// 2 |
|
567 |
//Set psFilename of oCodeMax To sFileName |
|
568 |
// Make it visible to the user where we are |
|
569 |
//Move True to bVisible |
|
570 |
//Send ComSelectLine of oCodeMax iLine bVisible |
|
571 |
Move (RGB(223,253,193)) To eBkLineColor |
|
572 |
Send ComSetLineColor iLine eBkLineColor //clYellow |
|
573 |
|
|
574 | 590 |
Send UpdateStatusHelp |
575 | 591 |
|
576 | 592 |
// Send ComSetLineColor iLine clRed |
AppSrc/vdfdbg.vw | ||
---|---|---|
141 | 141 |
Object oVdfdbg is a dbView |
142 | 142 |
|
143 | 143 |
Set Border_Style to Border_Thick |
144 |
Set Size to 346 469
|
|
144 |
Set Size to 346 769
|
|
145 | 145 |
Set Location to 3 4 |
146 | 146 |
Set Maximize_Icon to True |
147 | 147 |
|
148 | 148 |
Set phoDebuggerHost To Self |
149 |
Object oDebugSplitterContainer is a cSplitterContainer |
|
150 |
Set pbSplitVertical to False |
|
151 |
Set piSplitterLocation to 200 |
|
152 |
Object oEditorSplitter is a cSplitterContainerChild |
|
153 |
Object oCodeMax is a cSplatCodeMax |
|
154 |
Set Size to 188 459 |
|
155 |
Set Location to 6 6 |
|
156 |
Set peAnchors to anAll |
|
149 |
Object oVerticalSplitterContainer is a cSplitterContainer |
|
150 |
Set pbSplitVertical to True |
|
151 |
Set piSplitterLocation to 559 |
|
152 |
Object oLeftPanelSplitter is a cSplitterContainerChild |
|
153 |
Object oDebugSplitterContainer is a cSplitterContainer |
|
154 |
Set pbSplitVertical to False |
|
155 |
Set piSplitterLocation to 200 |
|
156 |
Object oTopPanelSplitter is a cSplitterContainerChild |
|
157 |
Object oCodeMax is a cSplatCodeMax |
|
158 |
Set Size to 188 553 |
|
159 |
Set Location to 6 6 |
|
160 |
Set peAnchors to anAll |
|
161 |
|
|
162 |
Set phoEditor To Self |
|
163 |
|
|
164 |
Procedure OnCreate |
|
165 |
Variant vImageList |
|
166 |
Boolean bCreated |
|
167 |
Handle hoLanguage |
|
168 |
|
|
169 |
Forward Send OnCreate |
|
170 |
|
|
171 |
// ToDo: Set the ActiveX properties here... |
|
172 |
Get ComImageList To vImageList |
|
173 |
//Set ComHImageList 0 // OLE_HANDLE value |
|
174 |
|
|
175 |
End_Procedure |
|
176 |
|
|
177 |
Embed_ActiveX_Resource |
|
178 |
6AMAAAgAAgAAAAAACAACAAAAAAAAAQEBAAAAAQEBAQAAAQAAAAAAAAAAAAAAAAHpAwAAAQEBAAEBAAEEAP//////////////////////////////////////////QwBv |
|
179 |
AHUAcgBpAGUAcgAgAE4AZQB3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAA/////wAAAAAAAAABAAAACgAAAAEAAf////// |
|
180 |
////AAAAAAABAAAAAQAAAE0uAAB2FwAA. |
|
181 |
End_Embed_ActiveX_Resource |
|
182 |
|
|
183 |
End_Object |
|
184 |
End_Object |
|
185 |
Object oBottomPanelSplitter Is a cSplitterContainerChild |
|
186 |
Object oDebug_TD is a TabDialog |
|
187 |
Set Size to 135 553 |
|
188 |
Set Location to 4 6 |
|
189 |
Set peAnchors to anAll |
|
157 | 190 |
|
158 |
Set phoEditor To Self |
|
159 |
|
|
160 |
Procedure OnCreate |
|
161 |
Variant vImageList |
|
162 |
Boolean bCreated |
|
163 |
Handle hoLanguage |
|
191 |
Object oGlobalVariables_TP is a TabPage |
|
192 |
Set Label to "Global Variables" |
|
193 |
|
|
194 |
Object oGlobalVarContainer is a Container3d |
|
195 |
Set Size to 131 540 |
|
196 |
Set Location to 2 2 |
|
197 |
Set peAnchors to anAll |
|
198 |
Set Border_Style to Border_StaticEdge |
|
199 |
Set phoGlobalVarHost To Self |
|
200 |
|
|
201 |
|
|
202 |
Procedure CreateObjectCallback Handle hoObject |
|
203 |
Handle hoGlobalVar |
|
204 |
|
|
205 |
If (hoObject) Begin |
|
206 |
Get phoGlobalVariables To hoGlobalVar |
|
207 |
If (hoObject=hoGlobalVar) Begin |
|
208 |
Set Size Of hoGlobalVar To 118 359 |
|
209 |
Set Location Of hoGlobalVar To 8 8 |
|
210 |
Set peAnchors Of hoGlobalVar To anAll |
|
211 |
End |
|
212 |
End |
|
213 |
End_Procedure // CreateObjectCallback |
|
214 |
End_Object |
|
215 |
End_Object |
|
216 |
|
|
217 |
Object oWatches_TP is a TabPage |
|
218 |
Set Label to "Watches" |
|
219 |
|
|
220 |
Object oWatchesContainer is a Container3d |
|
221 |
Set Size to 131 540 |
|
222 |
Set Location to 2 2 |
|
223 |
Set peAnchors to anAll |
|
224 |
Set Border_Style to Border_StaticEdge |
|
225 |
|
|
226 |
Set phoWatchesHost To Self |
|
227 |
|
|
228 |
Procedure CreateObjectCallback Handle hoObject |
|
229 |
Handle hoWatches |
|
230 |
|
|
231 |
If (hoObject) Begin |
|
232 |
Get phoWatches To hoWatches |
|
233 |
If (hoObject=hoWatches) Begin |
|
234 |
Set Size Of hoWatches To 118 361 |
|
235 |
Set Location Of hoWatches To 9 6 |
|
236 |
Set peAnchors Of hoWatches To anAll |
|
237 |
End |
|
238 |
End |
|
239 |
End_Procedure // CreateObjectCallback |
|
240 |
End_Object |
|
241 |
End_Object |
|
242 |
|
|
243 |
Object oTrace_TP is a TabPage |
|
244 |
Set Label to "Trace" |
|
245 |
|
|
246 |
Object oTraceContainer is a Container3d |
|
247 |
Set Size to 131 540 |
|
248 |
Set Location to 2 2 |
|
249 |
Set peAnchors to anAll |
|
250 |
Set Border_Style to Border_StaticEdge |
|
251 |
Set phoTraceHost To Self |
|
252 |
|
|
253 |
Procedure CreateObjectCallback Handle hoObject |
|
254 |
Handle hoTrace |
|
255 |
|
|
256 |
If (hoObject) Begin |
|
257 |
Get phoTrace To hoTrace |
|
258 |
If (hoObject=hoTrace) Begin |
|
259 |
Set Size Of hoTrace To 118 359 |
|
260 |
Set Location Of hoTrace To 9 6 |
|
261 |
Set Label Of hoTrace To "Trace" |
|
262 |
Set peAnchors Of hoTrace To anAll |
|
263 |
End |
|
264 |
End |
|
265 |
End_Procedure // CreateObjectCallback |
|
266 |
End_Object |
|
267 |
End_Object |
|
268 |
|
|
269 |
//Object oDACTreelist_TP is a TabPage |
|
270 |
// Set Label to "DACTreeList (not used)" |
|
271 |
// // I do not think we are going to use this one. |
|
272 |
// Object oComCDACTreeListCtl1 is a cComCDACTreeListCtl |
|
273 |
// Set Size to 100 100 |
|
274 |
// Set Location to 10 35 |
|
275 |
// |
|
276 |
// Procedure OnCreate |
|
277 |
// Forward Send OnCreate |
|
278 |
// // ToDo: Set the ActiveX properties here... |
|
279 |
// End_Procedure |
|
280 |
// |
|
281 |
// End_Object |
|
282 |
//End_Object |
|
283 |
|
|
284 |
Object oTables_TP is a TabPage |
|
285 |
Set Label to "Tables" |
|
286 |
|
|
287 |
Object oTablesContainer is a Container3d |
|
288 |
Set Size to 131 540 |
|
289 |
Set Location to 2 2 |
|
290 |
Set peAnchors to anAll |
|
291 |
Set Border_Style to Border_StaticEdge |
|
292 |
Set phoTablesHost To Self |
|
293 |
|
|
294 |
|
|
295 |
Procedure CreateObjectCallback Handle hoObject |
|
296 |
Handle hoTables |
|
297 |
|
|
298 |
If (hoObject) Begin |
|
299 |
Get phoTablesWindow To hoTables |
|
300 |
If (hoObject=hoTables) Begin |
|
301 |
Set Size Of hoTables To 118 363 |
|
302 |
Set Location Of hoTables To 7 6 |
|
303 |
Set peAnchors Of hoTables To anAll |
|
304 |
End |
|
305 |
End |
|
306 |
End_Procedure // CreateObjectCallback |
|
307 |
End_Object |
|
308 |
End_Object |
|
309 |
Object oBreakpoints_TP is a TabPage |
|
310 |
Set Label to "Breakpoints" |
|
311 |
Object oBreakPointsContainer is a Container3d |
|
312 |
Set Size to 131 540 |
|
313 |
Set Location to 2 2 |
|
314 |
Set peAnchors to anAll |
|
315 |
Set Border_Style to Border_StaticEdge |
|
316 |
|
|
317 |
Object oBreakpointsGrid is a cCJGrid |
|
318 |
Set Size to 112 382 |
|
319 |
Set Location to 6 10 |
|
320 |
Set peAnchors to anAll |
|
321 |
Set pbReadOnly to True |
|
322 |
Set phoBreakpointsGrid To Self |
|
164 | 323 |
|
165 |
Forward Send OnCreate |
|
324 |
Object oBPContextMenu Is a cBreakPointsGridContextMenu |
|
325 |
End_Object |
|
326 |
|
|
327 |
Set phoContextMenu To oBPContextMenu |
|
328 |
// Need to move to subclass for this technique, maybe later. |
|
329 |
//Function CreateContextMenu Returns Handle |
|
330 |
// Handle hoMenu |
|
331 |
// |
|
332 |
// Get Create (RefClass(cBreakPointsGridContextMenu)) To hoMenu |
|
333 |
// If (hoMenu) Begin |
|
334 |
// Set Name Of hoMenu To "oBPContextMenu" |
|
335 |
// End |
|
336 |
// Function_Return hoMenu |
|
337 |
//End_Function |
|
338 |
|
|
339 |
Object oEnabledColumn is a cCJGridColumn |
|
340 |
Set piWidth to 57 |
|
341 |
Set psCaption to "Active" |
|
342 |
Set pbCheckbox to True |
|
343 |
Set pbResizable to False |
|
344 |
End_Object |
|
345 |
|
|
346 |
Object oLineColumn is a cCJGridColumn |
|
347 |
Set piWidth to 85 |
|
348 |
Set psCaption to "Line" |
|
349 |
Set peDataType to Mask_Numeric_Window |
|
350 |
Set pbResizable to False |
|
351 |
End_Object |
|
352 |
|
|
353 |
Object oFileNameColumn is a cCJGridColumn |
|
354 |
Set piWidth to 351 |
|
355 |
Set psCaption to "File" |
|
356 |
End_Object |
|
357 |
|
|
358 |
// |
|
359 |
// Procedure ComSetCaretPos Integer llLine Integer llCol |
|
360 |
// |
|
361 |
// Procedure ComSelectLine Integer llLine Boolean llMakeVisible |
|
362 |
|
|
363 |
Procedure LoadData |
|
364 |
Handle hoDataSource |
|
365 |
Handle hoDebug |
|
366 |
Boolean bFound |
|
367 |
Boolean bIsCreated |
|
368 |
Integer iBreak |
|
369 |
Integer iCount |
|
370 |
Integer iRows |
|
371 |
Integer iActive |
|
372 |
Integer iLine |
|
373 |
Integer iFile |
|
374 |
tDataSourceRow[] TheData |
|
375 |
tBreakPoints[] BP |
|
376 |
|
|
377 |
Get phoDataSource to hoDataSource |
|
378 |
Get phoDebugger to hoDebug |
|
379 |
|
|
380 |
// Get the datasource indexes of the various columns |
|
381 |
Get piColumnId of oEnabledColumn to iActive |
|
382 |
Get piColumnId of oLineColumn to iLine |
|
383 |
Get piColumnId of oFileNameColumn to iFile |
|
166 | 384 |
|
167 |
// ToDo: Set the ActiveX properties here... |
|
168 |
Get ComImageList To vImageList |
|
169 |
//Set ComHImageList 0 // OLE_HANDLE value |
|
385 |
// Load all data into the datasource array |
|
386 |
If (hoDebug) Begin |
|
387 |
Get pBreakPoints of hoDebug To BP |
|
388 |
End |
|
389 |
Move (SizeOfArray(BP)) To iCount |
|
390 |
For iBreak from 0 To (iCount-1) |
|
391 |
// BP[iBreak].bHasCondition |
|
392 |
// BP[iBreak].sExpression |
|
393 |
|
|
394 |
//If (BP[iBreak].bEnabled) Move "Y" To TheData[iRows].sValue[iActive] |
|
395 |
//Else Move "N" To TheData[iRows].sValue[iActive] |
|
396 |
Move BP[iBreak].bEnabled To TheData[iRows].sValue[iActive] |
|
397 |
Move BP[iBreak].iLine To TheData[iRows].sValue[iLine] |
|
398 |
Move BP[iBreak].sFileName To TheData[iRows].sValue[iFile] |
|
399 |
Increment iRows |
|
400 |
Loop |
|
401 |
|
|
402 |
Get IsComObjectCreated To bIsCreated |
|
403 |
If (bIsCreated) Begin |
|
404 |
// Initialize Grid with new data |
|
405 |
Send InitializeData TheData |
|
406 |
Send MovetoFirstRow |
|
407 |
End |
|
408 |
End_Procedure |
|
409 |
|
|
410 |
End_Object |
|
411 |
|
|
412 |
Object oButton3 is a Button |
|
413 |
Set Size to 14 61 |
|
414 |
Set Location to 57 410 |
|
415 |
Set Label to "add breakpoint" |
|
416 |
Set peAnchors to anTopRight |
|
417 |
|
|
418 |
Procedure OnClick |
|
419 |
Integer iLine |
|
420 |
String sFileName |
|
421 |
Boolean bSuccess |
|
422 |
Handle hoDebugger |
|
423 |
Handle hoEditor |
|
424 |
|
|
425 |
Get phoDebugger to hoDebugger |
|
426 |
Get phoEditor to hoEditor |
|
427 |
If (hoDebugger<>0 and hoEditor<>0) Begin |
|
428 |
|
|
429 |
Get psFileName of hoEditor to sFileName |
|
430 |
Get piCurrentLine of hoEditor to iLine |
|
431 |
If (sFileName<>"" and iLine<>0) Begin |
|
432 |
Get SetBreakPoint of hoDebugger sFileName (&iLine) to bSuccess |
|
433 |
Send info_box ("Set breakpoint at line"*trim(iLine)*"success="*trim(bSuccess)) |
|
434 |
//Send ComSetMarginImages iLine 1 |
|
435 |
End |
|
436 |
End |
|
437 |
// in codemax |
|
438 |
// // turns on/off margin images for a specific line |
|
439 |
// Procedure ComSetMarginImages Integer llLine UChar llImages |
|
440 |
// |
|
441 |
// // sets the line margin images |
|
442 |
// Procedure Set ComHImageList OLE_HANDLE value |
|
443 |
// |
|
444 |
// // sets the line margin images |
|
445 |
// Function ComHImageList Returns OLE_HANDLE |
|
446 |
// // Returns the first line number with the specified margin images |
|
447 |
// Function ComFindLineMatchingMarginImages Integer llStartLine UChar llImages Returns Integer |
|
448 |
// in debugger |
|
449 |
// // Sets the specified breakpoint |
|
450 |
// Function ComSetBreakPoint String llfile UInteger ByRef llline Returns Boolean |
|
451 |
End_Procedure |
|
452 |
|
|
453 |
End_Object |
|
454 |
End_Object |
|
455 |
|
|
456 |
Procedure DisplayTabDetails |
|
457 |
Send LoadData of oBreakpointsGrid |
|
458 |
End_Procedure |
|
459 |
End_Object // TP |
|
460 |
|
|
170 | 461 |
|
171 |
End_Procedure |
|
172 |
|
|
173 |
Embed_ActiveX_Resource |
|
174 |
6AMAAAgAAgAAAAAACAACAAAAAAAAAQEBAAAAAQEBAQAAAQAAAAAAAAAAAAAAAAHpAwAAAQEBAAEBAAEEAP//////////////////////////////////////////QwBv |
|
175 |
AHUAcgBpAGUAcgAgAE4AZQB3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAA/////wAAAAAAAAABAAAACgAAAAEAAf////// |
|
176 |
////AAAAAAABAAAAAQAAAE0uAAB2FwAA. |
|
177 |
End_Embed_ActiveX_Resource |
|
178 |
|
|
179 |
End_Object |
|
180 |
|
|
181 |
|
|
462 |
Function Tab_Change Integer iToTab Integer ePointerMode Returns Integer |
|
463 |
Handle hoToTab |
|
464 |
Integer iCurrentTab |
|
465 |
Integer iRetVal |
|
466 |
|
|
467 |
Get Current_Tab To iCurrentTab |
|
468 |
Forward Get Tab_Change iToTab ePointerMode To iRetVal |
|
469 |
If (iCurrentTab<>-1 and iRetval=0) Begin |
|
470 |
Get Tab_Page_Id iToTab To hoToTab |
|
471 |
If (hoToTab=oBreakPoints_TP) Begin |
|
472 |
Send DisplayTabDetails of hoToTab |
|
473 |
End |
|
474 |
End |
|
475 |
Function_Return iRetVal |
|
476 |
End_Function |
|
477 |
|
|
478 |
End_Object // oDebug_TD |
|
479 |
|
|
480 |
End_Object // oDebugPanelSplitter |
|
481 |
End_Object // oSplitterContainer |
|
182 | 482 |
End_Object |
183 |
Object oDebugPanelsSplitter is a cSplitterContainerChild |
|
184 |
Object oDebug_TD is a TabDialog |
|
185 |
Set Size to 135 381 |
|
186 |
Set Location to 4 6 |
|
187 |
Set peAnchors to anAll |
|
188 |
|
|
189 |
Object oCallStack_TP is a TabPage |
|
190 |
Set Label to "Call Stack" |
|
191 |
|
|
483 |
Object oRightPanelSplitter Is a cSplitterContainerChild |
|
484 |
Object oStackSplitterContainer is a cSplitterContainer |
|
485 |
Set pbSplitVertical to False |
|
486 |
Set piSplitterLocation to 140 |
|
487 |
Object oStackTopPanelSplitter is a cSplitterContainerChild |
|
488 |
|
|
192 | 489 |
Object oCallStackContainer is a Container3d |
193 |
Set Size to 131 377
|
|
490 |
Set Size to 131 370
|
|
194 | 491 |
Set Location to 2 2 |
195 | 492 |
Set peAnchors to anAll |
196 | 493 |
Set Border_Style to Border_StaticEdge |
... | ... | |
204 | 501 |
Get phoCallStack To hoCallStack |
205 | 502 |
If (hoObject=hoCallStack) Begin |
206 | 503 |
Set Size Of hoCallStack To 118 361 |
207 |
Set Location Of hoCallStack To 9 5
|
|
504 |
Set Location Of hoCallStack To 11 5
|
|
208 | 505 |
Set Label_Justification_Mode Of hoCallStack To JMode_Top |
209 | 506 |
Set Label_Col_Offset Of hoCallStack To 0 |
210 | 507 |
Set Label Of hoCallStack To "Call Stack" |
... | ... | |
219 | 516 |
If (hoObject) Begin |
220 | 517 |
Get phoCallStack To hoCallStack |
221 | 518 |
If (hoObject=hoCallStack) Begin |
222 |
Set ComObjectColumnWidth Of hoCallStack To 200
|
|
223 |
Set ComMessageColumnWidth Of hoCallStack To 400
|
|
519 |
Set ComObjectColumnWidth Of hoCallStack To 90
|
|
520 |
Set ComMessageColumnWidth Of hoCallStack To 265
|
|
224 | 521 |
End |
225 | 522 |
End |
226 | 523 |
End_Procedure |
... | ... | |
231 | 528 |
// If hWindow Move (InvalidateRect(hWindow,0,True)) To hVoid |
232 | 529 |
//End_Procedure // RepaintTabPage |
233 | 530 |
End_Object |
234 |
|
|
235 | 531 |
End_Object |
236 |
|
|
237 |
Object oWatches_TP is a TabPage |
|
238 |
Set Label to "Watches" |
|
239 |
|
|
240 |
Object oWatchesContainer is a Container3d |
|
241 |
Set Size to 131 377 |
|
242 |
Set Location to 2 2 |
|
243 |
Set peAnchors to anAll |
|
244 |
Set Border_Style to Border_StaticEdge |
|
532 |
Object oStackBottomPanelSplitter Is a cSplitterContainerChild |
|
245 | 533 |
|
246 |
Set phoWatchesHost To Self |
|
247 |
|
|
248 |
Procedure CreateObjectCallback Handle hoObject |
|
249 |
Handle hoWatches |
|
250 |
|
|
251 |
If (hoObject) Begin |
|
252 |
Get phoWatches To hoWatches |
|
253 |
If (hoObject=hoWatches) Begin |
|
254 |
Set Size Of hoWatches To 118 361 |
|
255 |
Set Location Of hoWatches To 9 6 |
|
256 |
Set peAnchors Of hoWatches To anAll |
|
257 |
End |
|
258 |
End |
|
259 |
End_Procedure // CreateObjectCallback |
|
260 |
End_Object |
|
261 |
End_Object |
|
262 |
|
|
263 |
Object oTrace_TP is a TabPage |
|
264 |
Set Label to "Trace" |
|
265 |
|
|
266 |
Object oTraceContainer is a Container3d |
|
267 |
Set Size to 131 377 |
|
534 |
Object oLocalVarContainer is a Container3d |
|
535 |
Set Size to 200 370 |
|
268 | 536 |
Set Location to 2 2 |
269 | 537 |
Set peAnchors to anAll |
270 |
Set Border_Style to Border_StaticEdge |
|
271 |
Set phoTraceHost To Self |
|
538 |
Set Border_Style To Border_StaticEdge |
|
272 | 539 |
|
273 |
Procedure CreateObjectCallback Handle hoObject |
|
274 |
Handle hoTrace |
|
275 |
|
|
276 |
If (hoObject) Begin |
|
277 |
Get phoTrace To hoTrace |
|
278 |
If (hoObject=hoTrace) Begin |
|
279 |
Set Size Of hoTrace To 118 359 |
|
280 |
Set Location Of hoTrace To 9 6 |
|
281 |
Set Label Of hoTrace To "Trace" |
|
282 |
Set peAnchors Of hoTrace To anAll |
|
283 |
End |
|
284 |
End |
|
285 |
End_Procedure // CreateObjectCallback |
|
286 |
End_Object |
|
287 |
End_Object |
|
288 |
|
|
289 |
//Object oDACTreelist_TP is a TabPage |
|
290 |
// Set Label to "DACTreeList (not used)" |
|
291 |
// // I do not think we are going to use this one. |
|
292 |
// Object oComCDACTreeListCtl1 is a cComCDACTreeListCtl |
|
293 |
// Set Size to 100 100 |
|
294 |
// Set Location to 10 35 |
|
295 |
// |
|
296 |
// Procedure OnCreate |
|
297 |
// Forward Send OnCreate |
|
298 |
// // ToDo: Set the ActiveX properties here... |
|
299 |
// End_Procedure |
|
300 |
// |
|
301 |
// End_Object |
|
302 |
//End_Object |
|
303 |
|
|
304 |
Object oGlobalVariables_TP is a TabPage |
|
305 |
Set Label to "Global Variables" |
|
306 |
|
|
307 |
Object oGlobalVarContainer is a Container3d |
|
308 |
Set Size to 131 377 |
|
309 |
Set Location to 2 2 |
|
310 |
Set peAnchors to anAll |
|
311 |
Set Border_Style to Border_StaticEdge |
|
312 |
Set phoGlobalVarHost To Self |
|
313 |
|
|
314 |
|
|
315 |
Procedure CreateObjectCallback Handle hoObject |
|
316 |
Handle hoGlobalVar |
|
317 |
|
|
318 |
If (hoObject) Begin |
|
319 |
Get phoGlobalVariables To hoGlobalVar |
|
320 |
If (hoObject=hoGlobalVar) Begin |
|
321 |
Set Size Of hoGlobalVar To 118 359 |
|
322 |
Set Location Of hoGlobalVar To 8 8 |
|
323 |
Set peAnchors Of hoGlobalVar To anAll |
|
324 |
End |
|
325 |
End |
|
326 |
End_Procedure // CreateObjectCallback |
|
327 |
End_Object |
|
328 |
End_Object |
|
329 |
|
|
330 |
Object oLocalVariables_TP is a TabPage |
|
331 |
Set Label to "Local Variables" |
|
332 |
|
|
333 |
|
|
334 |
Object oLocalVarContainer is a Container3d |
|
335 |
Set Size to 131 377 |
|
336 |
Set Location to 2 2 |
|
337 |
Set peAnchors to anAll |
|
338 |
Set Border_Style to Border_StaticEdge |
|
339 | 540 |
Set phoLocalVarHost To Self |
340 |
|
|
341 | 541 |
|
342 | 542 |
Procedure CreateObjectCallback Handle hoObject |
343 | 543 |
Handle hoLocalVar |
... | ... | |
345 | 545 |
If (hoObject) Begin |
346 | 546 |
Get phoLocalVariables To hoLocalVar |
347 | 547 |
If (hoObject=hoLocalVar) Begin |
348 |
Set Size Of hoLocalVar To 118 359 |
|
349 |
Set Location Of hoLocalVar To 8 8 |
|
548 |
Set Size Of hoLocalVar To 188 359 |
|
549 |
Set Location Of hoLocalVar To 11 5 |
|
550 |
Set Label_Justification_Mode Of hoLocalVar To JMode_Top |
|
551 |
Set Label_Col_Offset Of hoLocalVar To 0 |
|
552 |
Set Label Of hoLocalVar To "Local Variables" |
|
350 | 553 |
Set peAnchors Of hoLocalVar To anAll |
351 | 554 |
End |
352 | 555 |
End |
353 | 556 |
End_Procedure // CreateObjectCallback |
354 | 557 |
End_Object |
355 | 558 |
End_Object |
356 |
|
|
357 |
Object oTables_TP is a TabPage |
|
358 |
Set Label to "Tables" |
|
359 |
|
|
360 |
Object oTablesContainer is a Container3d |
|
361 |
Set Size to 131 377 |
|
362 |
Set Location to 2 2 |
|
363 |
Set peAnchors to anAll |
|
364 |
Set Border_Style to Border_StaticEdge |
|
365 |
Set phoTablesHost To Self |
|
366 |
|
|
367 |
|
|
368 |
Procedure CreateObjectCallback Handle hoObject |
|
369 |
Handle hoTables |
|
370 |
|
|
371 |
If (hoObject) Begin |
|
372 |
Get phoTablesWindow To hoTables |
|
373 |
If (hoObject=hoTables) Begin |
|
374 |
Set Size Of hoTables To 118 363 |
|
375 |
Set Location Of hoTables To 7 6 |
|
376 |
Set peAnchors Of hoTables To anAll |
|
377 |
End |
|
378 |
End |
|
379 |
End_Procedure // CreateObjectCallback |
|
380 |
End_Object |
|
381 |
End_Object |
|
382 |
Object oBreakpoints_TP is a TabPage |
|
383 |
Set Label to "Breakpoints" |
|
384 |
Object oBreakPointsContainer is a Container3d |
|
385 |
Set Size to 131 377 |
|
386 |
Set Location to 2 2 |
|
387 |
Set peAnchors to anAll |
|
388 |
Set Border_Style to Border_StaticEdge |
|
389 |
|
|
390 |
Object oBreakpointsGrid is a cCJGrid |
|
391 |
Set Size to 112 282 |
|
392 |
Set Location to 6 10 |
|
393 |
Set peAnchors to anAll |
|
394 |
Set pbReadOnly to True |
|
395 |
Set phoBreakpointsGrid To Self |
|
396 |
|
|
397 |
Object oBPContextMenu Is a cBreakPointsGridContextMenu |
|
398 |
End_Object |
|
399 |
|
|
400 |
Set phoContextMenu To oBPContextMenu |
|
401 |
// Need to move to subclass for this technique, maybe later. |
|
402 |
//Function CreateContextMenu Returns Handle |
|
403 |
// Handle hoMenu |
|
404 |
// |
|
405 |
// Get Create (RefClass(cBreakPointsGridContextMenu)) To hoMenu |
|
406 |
// If (hoMenu) Begin |
|
407 |
// Set Name Of hoMenu To "oBPContextMenu" |
|
408 |
// End |
|
409 |
// Function_Return hoMenu |
|
410 |
//End_Function |
|
411 |
|
|
412 |
Object oEnabledColumn is a cCJGridColumn |
|
413 |
Set piWidth to 57 |
|
414 |
Set psCaption to "Active" |
|
415 |
Set pbCheckbox to True |
|
416 |
Set pbResizable to False |
|
417 |
End_Object |
|
418 |
|
|
419 |
Object oLineColumn is a cCJGridColumn |
|
420 |
Set piWidth to 85 |
|
421 |
Set psCaption to "Line" |
|
422 |
Set peDataType to Mask_Numeric_Window |
|
423 |
Set pbResizable to False |
|
424 |
End_Object |
|
425 |
|
|
426 |
Object oFileNameColumn is a cCJGridColumn |
|
427 |
Set piWidth to 351 |
|
428 |
Set psCaption to "File" |
|
429 |
End_Object |
|
430 |
|
|
431 |
// |
|
432 |
// Procedure ComSetCaretPos Integer llLine Integer llCol |
|
433 |
// |
|
434 |
// Procedure ComSelectLine Integer llLine Boolean llMakeVisible |
|
435 |
|
|
436 |
Procedure LoadData |
|
437 |
Handle hoDataSource |
|
438 |
Handle hoDebug |
|
439 |
Boolean bFound |
|
440 |
Boolean bIsCreated |
|
441 |
Integer iBreak |
|
442 |
Integer iCount |
|
443 |
Integer iRows |
|
444 |
Integer iActive |
|
445 |
Integer iLine |
|
446 |
Integer iFile |
|
447 |
tDataSourceRow[] TheData |
|
448 |
tBreakPoints[] BP |
|
449 |
|
|
450 |
Get phoDataSource to hoDataSource |
|
451 |
Get phoDebugger to hoDebug |
|
452 |
|
|
453 |
// Get the datasource indexes of the various columns |
|
454 |
Get piColumnId of oEnabledColumn to iActive |
|
455 |
Get piColumnId of oLineColumn to iLine |
|
456 |
Get piColumnId of oFileNameColumn to iFile |
|
457 |
|
|
458 |
// Load all data into the datasource array |
|
459 |
If (hoDebug) Begin |
|
460 |
Get pBreakPoints of hoDebug To BP |
|
461 |
End |
|
462 |
Move (SizeOfArray(BP)) To iCount |
|
463 |
For iBreak from 0 To (iCount-1) |
|
464 |
// BP[iBreak].bHasCondition |
|
465 |
// BP[iBreak].sExpression |
|
466 |
|
|
467 |
//If (BP[iBreak].bEnabled) Move "Y" To TheData[iRows].sValue[iActive] |
|
468 |
//Else Move "N" To TheData[iRows].sValue[iActive] |
|
469 |
Move BP[iBreak].bEnabled To TheData[iRows].sValue[iActive] |
|
470 |
Move BP[iBreak].iLine To TheData[iRows].sValue[iLine] |
|
471 |
Move BP[iBreak].sFileName To TheData[iRows].sValue[iFile] |
|
472 |
Increment iRows |
|
473 |
Loop |
|
474 |
|
|
475 |
Get IsComObjectCreated To bIsCreated |
|
476 |
If (bIsCreated) Begin |
|
477 |
// Initialize Grid with new data |
|
478 |
Send InitializeData TheData |
|
479 |
Send MovetoFirstRow |
|
480 |
End |
|
481 |
End_Procedure |
|
482 |
|
|
483 |
End_Object |
|
484 |
|
|
485 |
Object oButton3 is a Button |
|
486 |
Set Size to 14 61 |
|
487 |
Set Location to 57 310 |
|
488 |
Set Label to "add breakpoint" |
|
489 |
Set peAnchors to anTopRight |
|
490 |
|
|
491 |
Procedure OnClick |
|
492 |
Integer iLine |
|
493 |
String sFileName |
|
494 |
Boolean bSuccess |
|
495 |
Handle hoDebugger |
|
496 |
Handle hoEditor |
|
497 |
|
|
498 |
Get phoDebugger to hoDebugger |
|
499 |
Get phoEditor to hoEditor |
|
500 |
If (hoDebugger<>0 and hoEditor<>0) Begin |
|
501 |
|
|
502 |
Get psFileName of hoEditor to sFileName |
|
503 |
Get piCurrentLine of hoEditor to iLine |
|
504 |
If (sFileName<>"" and iLine<>0) Begin |
|
505 |
Get SetBreakPoint of hoDebugger sFileName (&iLine) to bSuccess |
|
506 |
Send info_box ("Set breakpoint at line"*trim(iLine)*"success="*trim(bSuccess)) |
|
507 |
//Send ComSetMarginImages iLine 1 |
|
508 |
End |
|
509 |
End |
|
510 |
// in codemax |
|
511 |
// // turns on/off margin images for a specific line |
|
512 |
// Procedure ComSetMarginImages Integer llLine UChar llImages |
|
513 |
// |
|
514 |
// // sets the line margin images |
|
515 |
// Procedure Set ComHImageList OLE_HANDLE value |
|
516 |
// |
|
517 |
// // sets the line margin images |
|
518 |
// Function ComHImageList Returns OLE_HANDLE |
|
519 |
// // Returns the first line number with the specified margin images |
|
520 |
// Function ComFindLineMatchingMarginImages Integer llStartLine UChar llImages Returns Integer |
|
521 |
// in debugger |
|
522 |
// // Sets the specified breakpoint |
|
523 |
// Function ComSetBreakPoint String llfile UInteger ByRef llline Returns Boolean |
|
524 |
End_Procedure |
|
525 |
|
|
526 |
End_Object |
|
527 |
End_Object |
|
528 |
|
|
529 |
Procedure DisplayTabDetails |
|
530 |
Send LoadData of oBreakpointsGrid |
|
531 |
End_Procedure |
|
532 |
End_Object // TP |
|
533 |
|
|
534 |
|
|
535 |
Function Tab_Change Integer iToTab Integer ePointerMode Returns Integer |
|
536 |
Handle hoToTab |
|
537 |
Integer iCurrentTab |
|
538 |
Integer iRetVal |
|
539 |
|
|
540 |
Get Current_Tab To iCurrentTab |
|
541 |
Forward Get Tab_Change iToTab ePointerMode To iRetVal |
|
542 |
If (iCurrentTab<>-1 and iRetval=0) Begin |
|
543 |
Get Tab_Page_Id iToTab To hoToTab |
|
544 |
If (hoToTab=oBreakPoints_TP) Begin |
|
545 |
Send DisplayTabDetails of hoToTab |
|
546 |
End |
|
547 |
End |
|
548 |
Function_Return iRetVal |
|
549 |
End_Function |
|
550 |
|
|
551 |
End_Object // oDebug_TD |
|
552 |
|
|
553 |
End_Object // oDebugPanelSplitter |
|
554 |
End_Object // oSplitterContainer |
|
559 |
End_Object |
|
560 |
End_Object |
|
561 |
End_Object |
|
555 | 562 |
|
556 | 563 |
|
557 | 564 |
|
Also available in: Unified diff