View Issue Details

IDProjectCategoryView StatusLast Update
0023800LazarusDebuggerpublic2019-04-22 19:33
ReporterMartin FriebeAssigned ToMartin Friebe 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformw32OSwinOS Versionvista
Product Version1.1 (SVN)Product Build 
Target Version1.2.0Fixed in Version1.1 (SVN) 
Summary0023800: IDE does not wait for debugger to "really" stop, if re-compilation is requested
DescriptionSee http://forum.lazarus.freepascal.org/index.php/topic,19725.msg112843.html#msg112843
Steps To ReproduceIf the debugger is:
- running,
- and the debugged app is NOT paused (not at a breakpoint or stepping)
- and you choose "build" or "compile"
=> then a dialog will pop up "Can't compile while debugging. Stop Debugger?".
If you press:
- yes,
- and then press F9 (or run), right after the compiler finishes (F9 is ignored, while the compiler runs),
=> then you will hang the debugger.
Additional InformationBefore compiling the IDE asks the debugger to stop. The debugger returns true, if it successfully stopped the debuggee.

But the debugger may still need time to clean up. The ToolStatus will still be itDebugger.

The IDE will not check the ToolStatus, it will start the cempiler, and when finished set the ToolStatus to itNone.

The debugger is not yet done, But due to itNone the IDE thinks otherwise, and will send a new Run request.
This will fail and leave an incorrect state.

-----
The debugger can not finish the stop, because the IDE is running in a ProcessMessages that was called by the debugger. The debugger can only finish, when this returns.

Since the debuggee is already stopped, it is save for the IDE to call the compiler. But it must restore the ToolStatus.
TagsNo tags attached.
Fixed in Revision40097
LazTarget1.2
Widgetset
Attached Files

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2013-01-31 19:57 Martin Friebe New Issue
2013-01-31 19:57 Martin Friebe Status new => assigned
2013-01-31 19:57 Martin Friebe Assigned To => Martin Friebe
2013-01-31 20:04 Martin Friebe Fixed in Revision => 40097
2013-01-31 20:04 Martin Friebe LazTarget - => 1.2
2013-01-31 20:04 Martin Friebe Status assigned => resolved
2013-01-31 20:04 Martin Friebe Fixed in Version => 1.1 (SVN)
2013-01-31 20:04 Martin Friebe Resolution open => fixed
2019-04-22 19:33 Martin Friebe Status resolved => closed