polserver/testsuite/pol/testpkgs/debugger/debuggee.src
Kevin Eady 0b1bb4c2bf
Add source location to Print() messages sent to debugger (#664)
* Implementation

* Tests

* Update core-changes
2024-07-16 20:23:17 +02:00

62 lines
1.9 KiB
Text

use os;
use uo;
var global_string := "global_string";
var global_long := 1;
var global_float := 3.14;
var global_array := array{ "global_array[1]", "global_array[2]", "global_array[3]" };
var global_struct := struct{ "key1" := "global_struct.key1", "key2" := "global_struct.key2", "key3" := "global_struct.key3" };
var global_dict := dictionary{ 1 -> "global_dict[1]", 2 -> "global_dict[2]", "three" -> "global_dict[\"three\"]" };
var shadowed_variable := "shadowed_variable:global";
program main(running)
do
Debugger();
var func1_result := func1("func1:param1", global_string, global_long);
var func2_result := func2("func2:param1", global_float, global_array);
var shadowed_result := funcShadowed("funcShadowed:param1");
Sleepms(1);
dowhile (running && running != "stop");
// This only prints in the "launch" test, as the "attach" test never finishes the loop.
//
// [NB: The "launch" test kills this script once the test finishes, whereas the "launch"
// script waits for this script to exit.]
print( "Loop finished!" ); /*print*/
endprogram
function func1( func1_param1, func1_param2, func1_param3 )
func1_param1;
func1_param2;
func1_param3;
return "func1:return";
endfunction
function func2( func2_param1, func2_param2, func2_param3 )
func2_param1;
func2_param2;
func2_param3;
var funct3_result := func3("func3:param1", global_struct, global_dict); /*set_bp*/
return "func2:return";
endfunction
function func3( func3_param1, func3_param2, func3_param3 )
func3_param1;
func3_param2;
func3_param3;
return "func3:return";
endfunction
function funcShadowed(shadowed_variable)
shadowed_variable; /*set_bp*/
var was_paused := 0; // Set by debugger
for i := 1 to 10
if (was_paused)
break;
endif
Sleepms(100); // Used for `pause`
endfor
return was_paused;
endfunction