godotengine / godotengine/godot
Evaluator does not work without breakpoint
- 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
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