Skip to content

Locked PDB file blocks GDExtension compilation when Editor is launched within debugging #82536

@kkolyan

Description

@kkolyan

Godot version

v4.2.dev (4c3dc26)

System information

Godot v4.2.dev (4c3dc26) - Windows 10.0.19042 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1660 Ti (NVIDIA; 31.0.15.3713) - Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (12 Threads)

Issue description

When Godot Editor is launched within debugging session, it locks PDB file, preventing GDextension compilation

Very similar issue with DLL blocking was fixed recently in this PR: #80188. That works fine when Editor launched without debugger, but with debugger it also blocks PDB. Could we copy it the same way?

Steps to reproduce

  1. checkout godot master branch
  2. compile it with scons dev_build=yes debug_symbols=yes platform=windows compiledb=yes -j8
  3. get some gdextension. dodge-the-creeps example from gdext is fine, then git clone https://github.com/godot-rust/gdext.git && cd gdext/examples/dodge-the-creeps/rust
  4. compile this gdextension cargo build --package dodge-the-creeps --lib
  5. start editor with attached debugger (I used CLion) path_to_godot_working_copy\bin\godot.windows.editor.x86_64.exe --editor --path ../godot (that's path from rust dir to gdext/examples/dodge-the-creeps/godot)
  6. wait for scene loading. it should load fine.
  7. open ./src/player.rs (gdext/examples/dodge-the-creeps/rust/src/player.rs) in any texty editor and append following line to the end: impl Player { fn hello() {} }
  8. again compile cargo build --package dodge-the-creeps --lib --features custom-godot
  9. get error: note: LINK : fatal error LNK1201: error writing to program database 'C:\dev\reload_lab\gdext\target\debug\deps\dodge_the_creeps.pdb'; check for insufficient disk space, invalid path, or insufficient privilege

Minimal reproduction project

N/A

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions