@@ -541,23 +541,43 @@ void RemoteDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) {
541
541
542
542
List<String> locals;
543
543
List<Variant> local_vals;
544
-
545
544
script_debugger->get_break_language ()->debug_get_stack_level_locals (frame, &locals, &local_vals);
546
- ERR_FAIL_COND (locals.size () != local_vals.size ());
547
545
548
- PackedStringArray locals_vector ;
546
+ PackedStringArray input_names ;
549
547
for (const String &S : locals) {
550
- locals_vector .append (S);
548
+ input_names .append (S);
551
549
}
552
550
553
- Array local_vals_array ;
551
+ Array input_vals ;
554
552
for (const Variant &V : local_vals) {
555
- local_vals_array.append (V);
553
+ input_vals.append (V);
554
+ }
555
+
556
+ List<StringName> native_types;
557
+ ClassDB::get_class_list (&native_types);
558
+ for (const StringName &E : native_types) {
559
+ if (!ClassDB::is_class_exposed (E) || !Engine::get_singleton ()->has_singleton (E)) {
560
+ continue ;
561
+ }
562
+
563
+ input_names.append (E);
564
+ input_vals.append (Engine::get_singleton ()->get_singleton_object (E));
565
+ }
566
+
567
+ List<StringName> globals;
568
+ ScriptServer::get_global_class_list (&globals);
569
+ for (const StringName &S : globals) {
570
+ String scr_path = ScriptServer::get_global_class_path (S);
571
+ Ref<Script> scr = ResourceLoader::load (scr_path, " Script" );
572
+ ERR_CONTINUE_MSG (scr.is_null (), vformat (" Could not load the global class %s from resource path: %s" , S, scr_path));
573
+
574
+ input_names.append (S);
575
+ input_vals.append (scr);
556
576
}
557
577
558
578
Expression expression;
559
- expression.parse (expression_str, locals_vector );
560
- const Variant return_val = expression.execute (local_vals_array , breaked_instance->get_owner ());
579
+ expression.parse (expression_str, input_names );
580
+ const Variant return_val = expression.execute (input_vals , breaked_instance->get_owner ());
561
581
562
582
DebuggerMarshalls::ScriptStackVariable stvar;
563
583
stvar.name = expression_str;
0 commit comments