View Issue Details

IDProjectCategoryView StatusLast Update
0034447LazarusIDEpublic2018-12-18 08:47
ReporternanobitAssigned ToMichl 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version2.0RC1Product Build 
Target VersionFixed in Version2.1 (SVN) 
Summary0034447: Lazarus Crash in IDE Docking Mode
DescriptionToday I tried the IDE Docking Layout:
1) Lazarus v2 RC1 32bit on Win10 64bit.
(other systems (I can't test) probably have the same problem)

2) IDE docking-layout (anchordockingdsgn.lpk installed)
(IDE nondocking (floating) layout doesn't cause the crash)

3) IDE two-column docking-layout:
Left column: Object inspector
Right column: Source editor at top and Pagecontrol at bottom.
The Pagecontrol contains as tabsheets:
Messages, Search Results and all (9) Debug Windows.
Code Explorer is not visible (has been closed with its red button).

4) The loaded project is a new application (empty form)
(This might be irrelevant.)

5) When I click "View / Code Explorer"
( only Code Explorer is causing the crash, other IDE Windows are OK).
then the IDE is jumping/flickering wild on screen, many times per second.
After some seconds Lazarus becomes invisible, except for its Pagecontrol,
and a modal message appears: "Access violation".
Clicking on this message closes the IDE after another few seconds.

In summary, Code Explorer can't be used together with this IDE Layout.
TagsNo tags attached.
Fixed in Revision59830
LazTarget-
WidgetsetWin32/Win64
Attached Files

Activities

nanobit

2018-10-26 21:12

reporter   ~0111584

After updating to the newest "components/anchordocking/anchordocking.pas"
the same problem still exists, but now I get an additional message, before the access violation:

[Content]
TWinControl.WMSize loop detected, the widgetset does not like the LCL bounds or sends unneeded wmsize messages: :TScrollBox BoundsRealized=l=0,t=0,r=1426,b=0 NewBoundsRealized=l=0,t=0,r=1426,b=0.
Press OK to ignore and risk data corruption.
Press Abort to kill the program.
[OK] [Abort]

In summary, if I start the IDE with docked layout, then click the menu: view / code explorer, I get:
1) two modal messages (see above, and AV)
2) IDE is crashing

While the expectation was, the code explorer would show as floating window.
I'm using a small display here (1280 pixels width), that's why only a docked layout can be efficient for the user.

Juha Manninen

2018-10-27 00:07

developer   ~0111588

I cannot reproduce. Tested on Linux with GTK2 and QT.
When not visible, Code Explorer by default always goes docked to the right from code editor.

You may have an old corrupt local configuration. Remove or rename it and try with a clean configuration.

Mattias Gaertner

2018-10-27 11:07

manager   ~0111605

As Juha wrote: It might be that you have a strange value in your config for Code Explorer and anchordocking tries to restore something impossible.
Try remvoing the Item element with Name="CodeExplorerView" from environmentoptions.xml

nanobit

2018-10-27 13:16

reporter   ~0111611

Meanwhile I found more how it happened in my case:
1) create default layout (3 columns)
2) delete 3rd column, by click on codeexplorer red-button (requires visible headers)
3) so we have some two-column layout
(in xml, CodeExplorerView is missing from <AnchorDocking> ... </AnchorDocking>)
4) ensure the IDE is broad enough (maximized or less than 30 pixels free on the right)
5) menu view / codeExplorer (tries to insert codeExplorer on the right side (default))
6) the crash follows, obviously due to the lack of free space on the right side

Condition (4) was new to me, so I could solve this by a narrower IDE before menu click.

Juha Manninen

2018-10-27 13:56

developer   ~0111614

I still cannot reproduce. The IDE window grows sideways when Code Explorer gets added. It may be a minor bug, I think the window size should stay the same.
However the width is limited by the screen width. If there is only a little space, it grows to screen width. If it already occupies the whole screen, it does not grow.

Do you have a multi-screen configuration? I have one screen.
Could it be Windows specific?
Sometimes crash bugs are solved by building clean. Normal build does not always recognize every dependency.

nanobit

2018-10-27 15:36

reporter   ~0111616

I recreated all (Lazarus and default environmentoptions.xml), then it happened again.
I'm not multi-screen. Only two trigger-conditions are required:
1) CodeExplorerView must be absent in <AnchorDocking> ... </AnchorDocking> of environmentoptions.xml.
2) Requested new window-width is too large (something larger than screen width).
(The window position is not relevant: if window-left is more inside the screen,
then the window will grow beyond the right screen-edge, without problems.)

If NonWindows users can't reproduce the crash based on these conditions, then it must be specific to MS Windows.

Ok, for me it's not urgent anymore, but it could happen to other Windows users, in the special case that they closed the CodeExplorer. But now I know, a 2-column-layout can be obtained easier without closing, but with moving :)

Michl

2018-12-16 20:19

developer   ~0112620

Last edited: 2018-12-17 20:50

View 3 revisions

Can you test this issue with latest Lazarus trunk version? I don't see this problem, but at least the IDE bounds shouldn't be increased, if Messages or CodeExplorer form is shown. I fixed this in revision 59830.

nanobit

2018-12-17 14:14

reporter   ~0112650

It works now without crash, thank you!

Michl

2018-12-17 20:51

developer   ~0112653

Ok, thank you for the info! Please close.

Issue History

Date Modified Username Field Change
2018-10-21 11:52 nanobit New Issue
2018-10-26 21:12 nanobit Note Added: 0111584
2018-10-27 00:07 Juha Manninen Note Added: 0111588
2018-10-27 11:01 Mattias Gaertner Assigned To => Mattias Gaertner
2018-10-27 11:01 Mattias Gaertner Status new => assigned
2018-10-27 11:07 Mattias Gaertner LazTarget => -
2018-10-27 11:07 Mattias Gaertner Note Added: 0111605
2018-10-27 11:07 Mattias Gaertner Status assigned => feedback
2018-10-27 13:16 nanobit Note Added: 0111611
2018-10-27 13:16 nanobit Status feedback => assigned
2018-10-27 13:56 Juha Manninen Note Added: 0111614
2018-10-27 15:36 nanobit Note Added: 0111616
2018-10-31 21:02 Michl Assigned To Mattias Gaertner => Michl
2018-12-16 20:15 Michl Fixed in Revision => 59830
2018-12-16 20:15 Michl Fixed in Version => 2.1 (SVN)
2018-12-16 20:19 Michl Note Added: 0112620
2018-12-16 20:19 Michl Status assigned => feedback
2018-12-16 20:20 Michl Note Edited: 0112620 View Revisions
2018-12-17 14:14 nanobit Note Added: 0112650
2018-12-17 14:14 nanobit Status feedback => assigned
2018-12-17 20:50 Michl Note Edited: 0112620 View Revisions
2018-12-17 20:51 Michl Note Added: 0112653
2018-12-17 20:51 Michl Status assigned => resolved
2018-12-17 20:51 Michl Resolution open => fixed
2018-12-18 08:47 nanobit Status resolved => closed