godotengine / godotengine/godot

Evaluator does not work without breakpoint

Open
#99,005 1 comment 8 reactions 0 assignees View on GitHub
bug topic:editor
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

4.4 dev4

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 31.0.15.4633) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

When you try to use Evaluator without a breakpoint (by using Pause Running Project), you'll get `GDScriptLanguage::debug_get_stack_level_instance: Index p_level = -1 is out of bounds (_call_stack.stack_pos = 0).` error and the project will resume.
The error is expected (expected, i.e. there is really no stack trace), the resume part is some weird bug. But the evaluator should just stay disabled in this case. Yet you can write and execute expression.

### Steps to reproduce

1. Run project from editor
2. Pause it (F7)
3. Use Debugger's Evaluator

### Minimal reproduction project (MRP)

N/A

Contributor guide

Open the contributing guide

Research direction

Start with the Debugger's Evaluator flow and the GDScriptLanguage::debug_get_stack_level_instance error reported when pausing a running project with F7. Reproduce the issue on Windows using the listed steps, then trace how the evaluator handles the absent stack. Done means pausing without a breakpoint no longer resumes the project and the evaluator is disabled without attempting expression execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.