View Issue Details

IDProjectCategoryView StatusLast Update
0036305LazarusDebuggerpublic2019-11-29 15:53
ReporterCyraxAssigned ToMartin Friebe 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformLinux x86_64OSArchOS Version3.17.4-1
Product Version2.1 (SVN)Product Buildr62218 
Target VersionFixed in Version 
Summary0036305: Sudden exit when changing debug profile or clicking on the profile item at Lazarus IDE options dialog.
DescriptionFor some odd reason, underlying GTK2 libraries barfs (SIGSEGV) at combination of TFrame, TToolbar dropdown menu and TPopupMenu and dynamic menu item creation and their deletion by clearing menu items.
Attached patch will fix this by always creating them and leaving freeing of them by owning class (the TTframe).
TagsNo tags attached.
Fixed in Revision
LazTarget-
WidgetsetGTK 2
Attached Files
  • debugger_class_options.diff (7,676 bytes)
    diff --git debugger/frames/debugger_class_options.lfm debugger/frames/debugger_class_options.lfm
    index a8f8b6d821..0fab5a9712 100644
    --- debugger/frames/debugger_class_options.lfm
    +++ debugger/frames/debugger_class_options.lfm
    @@ -24,37 +24,36 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           Left = 1
           Top = 0
           Caption = 'tbSelect'
    -      DropdownMenu = tbDropMenu
           OnClick = tbSelectClick
           Style = tbsDropDown
         end
         object tbAddNew: TToolButton
    -      Left = 78
    +      Left = 79
           Top = 0
           Caption = 'tbAddNew'
           OnClick = tbAddNewClick
         end
         object tbCopy: TToolButton
    -      Left = 143
    +      Left = 154
           Top = 0
           Caption = 'tbCopy'
           OnClick = tbCopyClick
         end
         object ToolButton2: TToolButton
    -      Left = 203
    +      Left = 214
           Height = 22
           Top = 0
           Caption = 'ToolButton2'
           Style = tbsDivider
         end
         object tbDelete: TToolButton
    -      Left = 208
    +      Left = 219
           Top = 0
           Caption = 'tbDelete'
           OnClick = tbDeleteClick
         end
         object ToolButton3: TToolButton
    -      Left = 73
    +      Left = 74
           Height = 22
           Top = 0
           Caption = 'ToolButton3'
    @@ -76,9 +75,9 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           AnchorSideTop.Control = edName
           AnchorSideTop.Side = asrCenter
           Left = 10
    -      Height = 15
    +      Height = 17
           Top = 10
    -      Width = 45
    +      Width = 55
           BorderSpacing.Left = 10
           Caption = 'lblName'
           ParentColor = False
    @@ -89,10 +88,10 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           AnchorSideTop.Control = Panel1
           AnchorSideRight.Control = Panel1
           AnchorSideRight.Side = asrBottom
    -      Left = 61
    -      Height = 23
    +      Left = 71
    +      Height = 24
           Top = 6
    -      Width = 448
    +      Width = 438
           Anchors = [akTop, akLeft, akRight]
           BorderSpacing.Left = 6
           BorderSpacing.Top = 6
    @@ -108,14 +107,14 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           AnchorSideRight.Control = Panel1
           AnchorSideRight.Side = asrBottom
           Left = 0
    -      Height = 84
    -      Top = 35
    +      Height = 91
    +      Top = 36
           Width = 519
           Anchors = [akTop, akLeft, akRight]
           AutoSize = True
           BorderSpacing.Top = 6
           Caption = 'Debugger type and path'
    -      ClientHeight = 64
    +      ClientHeight = 72
           ClientWidth = 515
           TabOrder = 1
           object cmbDebuggerType: TComboBox
    @@ -124,12 +123,12 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
             AnchorSideRight.Control = gbDebuggerType
             AnchorSideRight.Side = asrBottom
             Left = 6
    -        Height = 23
    +        Height = 28
             Top = 6
             Width = 503
             Anchors = [akTop, akLeft, akRight]
             BorderSpacing.Around = 6
    -        ItemHeight = 15
    +        ItemHeight = 0
             OnEditingDone = cmbDebuggerTypeEditingDone
             OnSelect = cmbDebuggerTypeEditingDone
             Style = csDropDownList
    @@ -141,14 +140,14 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
             AnchorSideTop.Side = asrBottom
             AnchorSideRight.Control = cmdOpenDebuggerPath
             Left = 6
    -        Height = 23
    -        Top = 35
    +        Height = 26
    +        Top = 40
             Width = 480
             Anchors = [akTop, akLeft, akRight]
             BorderSpacing.Left = 6
             BorderSpacing.Top = 6
             BorderSpacing.Bottom = 6
    -        ItemHeight = 15
    +        ItemHeight = 0
             OnEditingDone = cmbDebuggerPathEditingDone
             OnEnter = cmbDebuggerPathEditingDone
             TabOrder = 1
    @@ -160,8 +159,8 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
             AnchorSideBottom.Control = cmbDebuggerPath
             AnchorSideBottom.Side = asrBottom
             Left = 486
    -        Height = 23
    -        Top = 35
    +        Height = 26
    +        Top = 40
             Width = 23
             Anchors = [akTop, akRight, akBottom]
             BorderSpacing.Right = 6
    @@ -178,13 +177,13 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           AnchorSideRight.Side = asrBottom
           Left = 0
           Height = 55
    -      Top = 125
    +      Top = 133
           Width = 519
           Anchors = [akTop, akLeft, akRight]
           AutoSize = True
           BorderSpacing.Top = 6
           Caption = 'Additional search path'
    -      ClientHeight = 35
    +      ClientHeight = 36
           ClientWidth = 515
           TabOrder = 2
           Visible = False
    @@ -193,7 +192,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
             AnchorSideTop.Control = gbAdditionalSearchPath
             AnchorSideRight.Control = cmdOpenAdditionalPath
             Left = 6
    -        Height = 23
    +        Height = 24
             Top = 6
             Width = 480
             Anchors = [akTop, akLeft, akRight]
    @@ -209,7 +208,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
             AnchorSideBottom.Control = txtAdditionalPath
             AnchorSideBottom.Side = asrBottom
             Left = 486
    -        Height = 23
    +        Height = 24
             Top = 6
             Width = 23
             Anchors = [akTop, akRight, akBottom]
    @@ -228,8 +227,8 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           AnchorSideBottom.Control = Panel1
           AnchorSideBottom.Side = asrBottom
           Left = 0
    -      Height = 215
    -      Top = 186
    +      Height = 207
    +      Top = 194
           Width = 519
           Anchors = [akTop, akLeft, akRight, akBottom]
           BorderSpacing.Top = 6
    @@ -237,8 +236,4 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
           TabOrder = 3
         end
       end
    -  object tbDropMenu: TPopupMenu
    -    left = 294
    -    top = 5
    -  end
     end
    diff --git debugger/frames/debugger_class_options.pas debugger/frames/debugger_class_options.pas
    index a6d1afd809..8b36d1e3a0 100644
    --- debugger/frames/debugger_class_options.pas
    +++ debugger/frames/debugger_class_options.pas
    @@ -54,7 +54,6 @@ type
         gbDebuggerType: TGroupBox;
         lblName: TLabel;
         Panel1: TPanel;
    -    tbDropMenu: TPopupMenu;
         ToolBar1: TToolBar;
         tbSelect: TToolButton;
         tbAddNew: TToolButton;
    @@ -80,6 +79,7 @@ type
         FCopiedDbgPropertiesConfigList: TDebuggerPropertiesConfigList;
         FSelectedDbgPropertiesConfig: TDebuggerPropertiesConfig;
         FLastCheckedDebuggerPath: String;
    +    FDropMenu: TPopupMenu;
         function SelectedDebuggerClass: TDebuggerClass; // currently shown debugger class
         function SelectedDebuggerProperties: TDebuggerProperties;
     
    @@ -522,17 +522,17 @@ var
       m: TMenuItem;
       i: Integer;
     begin
    -  tbDropMenu.Items.Clear;
    +  FDropMenu := TPopupMenu.Create(Self);
       for i := 0 to FCopiedDbgPropertiesConfigList.Count - 1 do
         if (not FCopiedDbgPropertiesConfigList.Opt[i].IsDeleted) and
            (FCopiedDbgPropertiesConfigList.Opt[i].IsLoaded)
         then begin
    -      m := TMenuItem.Create(tbDropMenu);
    +      m := TMenuItem.Create(FDropMenu);
           m.Caption := FCopiedDbgPropertiesConfigList.Opt[i].DisplayName;
           m.Tag := i;
           m.OnClick := @DoNameSelected;
           m.Checked := FCopiedDbgPropertiesConfigList.Opt[i] = FSelectedDbgPropertiesConfig;
    -      tbDropMenu.Items.Add(m);
    +      FDropMenu.Items.Add(m);
         end;
       if FSelectedDbgPropertiesConfig <> nil then
         tbSelect.Caption := FSelectedDbgPropertiesConfig.DisplayName
    @@ -542,6 +542,7 @@ begin
       Panel1.Enabled := FSelectedDbgPropertiesConfig <> nil;
       tbCopy.Enabled := FSelectedDbgPropertiesConfig <> nil;
       tbDelete.Enabled := FSelectedDbgPropertiesConfig <> nil;
    +  tbSelect.DropdownMenu := FDropMenu;
     end;
     
     procedure TDebuggerClassOptionsFrame.HookGetCheckboxForBoolean(var Value: Boolean);
    

Relationships

child of 0036306 new GTK2 libraries crash (SIGSEGV) at combination of TFrame, TToolbar dropdown menu and TPopupMenu and dynamic menu item creation 

Activities

Cyrax

2019-11-13 01:43

reporter  

debugger_class_options.diff (7,676 bytes)
diff --git debugger/frames/debugger_class_options.lfm debugger/frames/debugger_class_options.lfm
index a8f8b6d821..0fab5a9712 100644
--- debugger/frames/debugger_class_options.lfm
+++ debugger/frames/debugger_class_options.lfm
@@ -24,37 +24,36 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       Left = 1
       Top = 0
       Caption = 'tbSelect'
-      DropdownMenu = tbDropMenu
       OnClick = tbSelectClick
       Style = tbsDropDown
     end
     object tbAddNew: TToolButton
-      Left = 78
+      Left = 79
       Top = 0
       Caption = 'tbAddNew'
       OnClick = tbAddNewClick
     end
     object tbCopy: TToolButton
-      Left = 143
+      Left = 154
       Top = 0
       Caption = 'tbCopy'
       OnClick = tbCopyClick
     end
     object ToolButton2: TToolButton
-      Left = 203
+      Left = 214
       Height = 22
       Top = 0
       Caption = 'ToolButton2'
       Style = tbsDivider
     end
     object tbDelete: TToolButton
-      Left = 208
+      Left = 219
       Top = 0
       Caption = 'tbDelete'
       OnClick = tbDeleteClick
     end
     object ToolButton3: TToolButton
-      Left = 73
+      Left = 74
       Height = 22
       Top = 0
       Caption = 'ToolButton3'
@@ -76,9 +75,9 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       AnchorSideTop.Control = edName
       AnchorSideTop.Side = asrCenter
       Left = 10
-      Height = 15
+      Height = 17
       Top = 10
-      Width = 45
+      Width = 55
       BorderSpacing.Left = 10
       Caption = 'lblName'
       ParentColor = False
@@ -89,10 +88,10 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       AnchorSideTop.Control = Panel1
       AnchorSideRight.Control = Panel1
       AnchorSideRight.Side = asrBottom
-      Left = 61
-      Height = 23
+      Left = 71
+      Height = 24
       Top = 6
-      Width = 448
+      Width = 438
       Anchors = [akTop, akLeft, akRight]
       BorderSpacing.Left = 6
       BorderSpacing.Top = 6
@@ -108,14 +107,14 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       AnchorSideRight.Control = Panel1
       AnchorSideRight.Side = asrBottom
       Left = 0
-      Height = 84
-      Top = 35
+      Height = 91
+      Top = 36
       Width = 519
       Anchors = [akTop, akLeft, akRight]
       AutoSize = True
       BorderSpacing.Top = 6
       Caption = 'Debugger type and path'
-      ClientHeight = 64
+      ClientHeight = 72
       ClientWidth = 515
       TabOrder = 1
       object cmbDebuggerType: TComboBox
@@ -124,12 +123,12 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
         AnchorSideRight.Control = gbDebuggerType
         AnchorSideRight.Side = asrBottom
         Left = 6
-        Height = 23
+        Height = 28
         Top = 6
         Width = 503
         Anchors = [akTop, akLeft, akRight]
         BorderSpacing.Around = 6
-        ItemHeight = 15
+        ItemHeight = 0
         OnEditingDone = cmbDebuggerTypeEditingDone
         OnSelect = cmbDebuggerTypeEditingDone
         Style = csDropDownList
@@ -141,14 +140,14 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
         AnchorSideTop.Side = asrBottom
         AnchorSideRight.Control = cmdOpenDebuggerPath
         Left = 6
-        Height = 23
-        Top = 35
+        Height = 26
+        Top = 40
         Width = 480
         Anchors = [akTop, akLeft, akRight]
         BorderSpacing.Left = 6
         BorderSpacing.Top = 6
         BorderSpacing.Bottom = 6
-        ItemHeight = 15
+        ItemHeight = 0
         OnEditingDone = cmbDebuggerPathEditingDone
         OnEnter = cmbDebuggerPathEditingDone
         TabOrder = 1
@@ -160,8 +159,8 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
         AnchorSideBottom.Control = cmbDebuggerPath
         AnchorSideBottom.Side = asrBottom
         Left = 486
-        Height = 23
-        Top = 35
+        Height = 26
+        Top = 40
         Width = 23
         Anchors = [akTop, akRight, akBottom]
         BorderSpacing.Right = 6
@@ -178,13 +177,13 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       AnchorSideRight.Side = asrBottom
       Left = 0
       Height = 55
-      Top = 125
+      Top = 133
       Width = 519
       Anchors = [akTop, akLeft, akRight]
       AutoSize = True
       BorderSpacing.Top = 6
       Caption = 'Additional search path'
-      ClientHeight = 35
+      ClientHeight = 36
       ClientWidth = 515
       TabOrder = 2
       Visible = False
@@ -193,7 +192,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
         AnchorSideTop.Control = gbAdditionalSearchPath
         AnchorSideRight.Control = cmdOpenAdditionalPath
         Left = 6
-        Height = 23
+        Height = 24
         Top = 6
         Width = 480
         Anchors = [akTop, akLeft, akRight]
@@ -209,7 +208,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
         AnchorSideBottom.Control = txtAdditionalPath
         AnchorSideBottom.Side = asrBottom
         Left = 486
-        Height = 23
+        Height = 24
         Top = 6
         Width = 23
         Anchors = [akTop, akRight, akBottom]
@@ -228,8 +227,8 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       AnchorSideBottom.Control = Panel1
       AnchorSideBottom.Side = asrBottom
       Left = 0
-      Height = 215
-      Top = 186
+      Height = 207
+      Top = 194
       Width = 519
       Anchors = [akTop, akLeft, akRight, akBottom]
       BorderSpacing.Top = 6
@@ -237,8 +236,4 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
       TabOrder = 3
     end
   end
-  object tbDropMenu: TPopupMenu
-    left = 294
-    top = 5
-  end
 end
diff --git debugger/frames/debugger_class_options.pas debugger/frames/debugger_class_options.pas
index a6d1afd809..8b36d1e3a0 100644
--- debugger/frames/debugger_class_options.pas
+++ debugger/frames/debugger_class_options.pas
@@ -54,7 +54,6 @@ type
     gbDebuggerType: TGroupBox;
     lblName: TLabel;
     Panel1: TPanel;
-    tbDropMenu: TPopupMenu;
     ToolBar1: TToolBar;
     tbSelect: TToolButton;
     tbAddNew: TToolButton;
@@ -80,6 +79,7 @@ type
     FCopiedDbgPropertiesConfigList: TDebuggerPropertiesConfigList;
     FSelectedDbgPropertiesConfig: TDebuggerPropertiesConfig;
     FLastCheckedDebuggerPath: String;
+    FDropMenu: TPopupMenu;
     function SelectedDebuggerClass: TDebuggerClass; // currently shown debugger class
     function SelectedDebuggerProperties: TDebuggerProperties;
 
@@ -522,17 +522,17 @@ var
   m: TMenuItem;
   i: Integer;
 begin
-  tbDropMenu.Items.Clear;
+  FDropMenu := TPopupMenu.Create(Self);
   for i := 0 to FCopiedDbgPropertiesConfigList.Count - 1 do
     if (not FCopiedDbgPropertiesConfigList.Opt[i].IsDeleted) and
        (FCopiedDbgPropertiesConfigList.Opt[i].IsLoaded)
     then begin
-      m := TMenuItem.Create(tbDropMenu);
+      m := TMenuItem.Create(FDropMenu);
       m.Caption := FCopiedDbgPropertiesConfigList.Opt[i].DisplayName;
       m.Tag := i;
       m.OnClick := @DoNameSelected;
       m.Checked := FCopiedDbgPropertiesConfigList.Opt[i] = FSelectedDbgPropertiesConfig;
-      tbDropMenu.Items.Add(m);
+      FDropMenu.Items.Add(m);
     end;
   if FSelectedDbgPropertiesConfig <> nil then
     tbSelect.Caption := FSelectedDbgPropertiesConfig.DisplayName
@@ -542,6 +542,7 @@ begin
   Panel1.Enabled := FSelectedDbgPropertiesConfig <> nil;
   tbCopy.Enabled := FSelectedDbgPropertiesConfig <> nil;
   tbDelete.Enabled := FSelectedDbgPropertiesConfig <> nil;
+  tbSelect.DropdownMenu := FDropMenu;
 end;
 
 procedure TDebuggerClassOptionsFrame.HookGetCheckboxForBoolean(var Value: Boolean);

Martin Friebe

2019-11-13 03:01

manager   ~0119252

This should probably be resolved in the gtk widgetset/lcl code.
I created a related issue for this.

This issue will be on hold.
If the related issues can not be fixed in time, I may consider the patch as a workaround for the IDE.

Martin Friebe

2019-11-13 03:06

manager   ~0119253

While I am not the gtk maintainer, and while the relevant person might have their own idea (especially if they can reproduce), the following might be relevant:

Does the crash happen, by removing just any one item?
Or is it when the list goes to zero.

If clear would leave the last item, and replace it.... ?

Cyrax

2019-11-13 11:00

reporter   ~0119262

Last edited: 2019-11-13 11:17

View 3 revisions

I'm not sure in which bug report I should include this backtrace, but oh well.
Curiously this bug only shows up when building Lazarus trunk with FPC trunk r43433.
In FPC trunk r43457 and later this is fixed, but applying the patch won't break anything. ;-)

EDIT : This is under i386-linux LXC container. And it only manifest itself when running under GDB debugger.

Thread 1 "lazarus" received signal SIGABRT, Aborted.
0xf7fd2b49 in __kernel_vsyscall ()
#0  0xf7fd2b49 in __kernel_vsyscall ()
0000001  0xf73c2cc6 in raise () at /usr/lib/libc.so.6
0000002  0xf73ab375 in abort () at /usr/lib/libc.so.6
0000003  0xf7408d4c in __libc_message () at /usr/lib/libc.so.6
0000004  0xf741105d in  () at /usr/lib/libc.so.6
0000005  0xf7411a1f in malloc_consolidate () at /usr/lib/libc.so.6
0000006  0xf7413e69 in _int_malloc () at /usr/lib/libc.so.6
0000007  0xf7415830 in malloc () at /usr/lib/libc.so.6
0000008  0xf7773153 in g_realloc () at /usr/lib/libglib-2.0.so.0
0000009  0xf76dc32c in pango_glyph_string_set_size () at /usr/lib/libpango-1.0.so.0
0000010 0xf76c69cc in  () at /usr/lib/libpango-1.0.so.0
0000011 0xf76c7029 in pango_shape_with_flags () at /usr/lib/libpango-1.0.so.0
0000012 0xf76c748d in pango_shape_full () at /usr/lib/libpango-1.0.so.0
0000013 0xf76e40dc in pango_context_get_metrics () at /usr/lib/libpango-1.0.so.0
0000014 0xf79606d4 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000015 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000016 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000017 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000018 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000019 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000020 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000021 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000022 0xf7996c97 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000023 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000024 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000025 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000026 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000027 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000028 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000029 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000030 0xf799cb97 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000031 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000032 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000033 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000034 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000035 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000036 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000037 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000038 0xf79d83e0 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000039 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000040 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000041 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000042 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000043 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000044 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000045 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000046 0xf7a5281f in  () at /usr/lib/libgtk-x11-2.0.so.0
0000047 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000048 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000049 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000050 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000051 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000052 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
#53 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
#54 0xf79d83e0 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000055 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000056 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000057 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000058 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000059 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000060 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000061 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000062 0xf7a5281f in  () at /usr/lib/libgtk-x11-2.0.so.0
0000063 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000064 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000065 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000066 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000067 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000068 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000069 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000070 0xf79d83e0 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000071 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000072 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000073 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000074 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000075 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000076 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000077 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000078 0xf7a5281f in  () at /usr/lib/libgtk-x11-2.0.so.0
0000079 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000080 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000081 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000082 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000083 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000084 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000085 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000086 0xf791cce7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000087 0xf7885cd6 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000088 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000089 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000090 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000091 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000092 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000093 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000094 0xf7b2e407 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000095 0xf7885dbe in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000096 0xf786e6f3 in  () at /usr/lib/libgobject-2.0.so.0
0000097 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000098 0xf7876389 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
0000099 0xf7a5e0d2 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000100 0xf7a5ece7 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000101 0xf7b1c6c4 in gtk_widget_size_request () at /usr/lib/libgtk-x11-2.0.so.0
0000102 0xf7b2efe4 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000103 0xf7b2f872 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000104 0xf7885dbe in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000105 0xf786dcf1 in  () at /usr/lib/libgobject-2.0.so.0
0000106 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000107 0xf78764a5 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000108 0xf7956187 in gtk_container_check_resize () at /usr/lib/libgtk-x11-2.0.so.0
0000109 0xf7956492 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000110 0xf7d8e360 in  () at /usr/lib/libgdk-x11-2.0.so.0
0000111 0xf777881d in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
0000112 0xf777a99a in  () at /usr/lib/libglib-2.0.so.0
0000113 0xf777a9e6 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
0000114 0x081583de in TGTK2WIDGETSET__APPPROCESSMESSAGES (this=0x9738034) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2widgetset.inc:2355
0000115 0x084accf4 in TGTK2WSPOPUPMENU__POPUP (self=0xa687004, APOPUPMENU=0xb070284, X=585, Y=283) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2wsmenus.pp:673
0000116 0x08289102 in TPOPUPMENU__POPUP (this=0xb070284, X=585, Y=283) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/popupmenu.inc:81
0000117 0x082c203e in TTOOLBAR__CHECKMENUDROPDOWN (this=0xb064a14, BUTTON=0xb066924) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/toolbar.inc:1115
0000118 0x082bdfda in TTOOLBUTTON__CHECKMENUDROPDOWN (this=0xb066924) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/toolbutton.inc:910
0000119 0x0884d751 in TDEBUGGERCLASSOPTIONSFRAME__TBSELECTCLICK (this=0xb063e94, SENDER=0xb066924) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/debugger/frames/debugger_class_options.pas:272
0000120 0x0823dc37 in TCONTROL__CLICK (this=0xb066924) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/control.inc:2912
0000121 0x082be01c in TTOOLBUTTON__CLICK (this=0xb066924) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/toolbutton.inc:919
0000122 0x082bbd96 in TTOOLBUTTON__MOUSEUP (this=0xb066924, BUTTON=MBLEFT, SHIFT=..., X=164, Y=15) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/toolbutton.inc:175
0000123 0x0823c95f in TCONTROL__DOMOUSEUP (this=0xb066924, MESSAGE=..., BUTTON=MBLEFT) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/control.inc:2302
0000124 0x0823d8d1 in TCONTROL__WMLBUTTONUP (this=0xb066924, MESSAGE=...) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/control.inc:2784
0000125 0x0807a3b5 in TOBJECT__DISPATCH (this=0xb066924, MESSAGE=) at /mnt/shares/ohjelmointi2/fpc/source/git_source/rtl/inc/objpas.inc:684
0000126 0x0823c726 in TCONTROL__WNDPROC (this=0xb066924, THEMESSAGE=...) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/control.inc:2242
0000127 0x0823aa76 in TCONTROL__PERFORM (this=0xb066924, MSG=514, WPARAM=0, LPARAM=983204) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/control.inc:1580
0000128 0x0822ce91 in TWINCONTROL__ISCONTROLMOUSEMSG (this=0xb064a14, THEMESSAGE=) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/wincontrol.inc:4755
0000129 0x0822e633 in TWINCONTROL__WNDPROC (this=0xb064a14, MESSAGE=...) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/wincontrol.inc:5377
0000130 0x08429f66 in DELIVERMESSAGE (TARGET=0xb064a14, AMESSAGE=) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/lclmessageglue.pas:112
0000131 0x0830ad0b in DELIVERMESSAGE (TARGET=0xb064a14, AMESSAGE=) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2proc.inc:3773
0000132 0x0831c851 in DELIVERMOUSEUPMESSAGE (WIDGET=0xad2a9d0, EVENT=0xac09a00, AWINCONTROL=0xb064a14) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2callback.inc:2205
0000133 0x0831ca90 in GTKMOUSEBTNRELEASE (WIDGET=0xaac1598, EVENT=0xac09a00, DATA=0xb064a14) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2callback.inc:2282
0000134 0xf79e3958 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000135 0xf7885dbe in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000136 0xf786e590 in  () at /usr/lib/libgobject-2.0.so.0
0000137 0xf7874d69 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000138 0xf78764a5 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000139 0xf7b1e726 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000140 0xf7b1ea4e in gtk_widget_event () at /usr/lib/libgtk-x11-2.0.so.0
0000141 0xf79e19ed in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
0000142 0xf79e1e3c in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
0000143 0xf7dd37f7 in  () at /usr/lib/libgdk-x11-2.0.so.0
0000144 0xf7778956 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
0000145 0xf777a99a in  () at /usr/lib/libglib-2.0.so.0
0000146 0xf777a9e6 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
0000147 0x081586a2 in TGTK2WIDGETSET__APPWAITMESSAGE (this=0x9738034) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2widgetset.inc:2433
0000148 0x080ed82e in TAPPLICATION__IDLE (this=0x9762a44, WAIT=true) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/application.inc:414
0000149 0x080e768f in TCUSTOMFORM__SHOWMODAL (this=0xa5975b4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/customform.inc:2978
0000150 0x0888c6d9 in TIDEOPTIONSDIALOG__SHOWMODAL (this=0xa5975b4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/ide/ideoptionsdlg.pas:666
0000151 0x08117b54 in TMAINIDE__DOOPENIDEOPTIONS (this=0x98f9c64, AEDITOR=0x0, ACAPTION=0x0, AOPTIONSFILTER=..., highAOPTIONSFILTER=-1, ASETTINGS=...) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/ide/main.pp:5029
0000152 0x08627ecf in TLAZIDEINTERFACE__DOOPENIDEOPTIONS (this=0x98f9c64, AEDITOR=0x0, ACAPTION=0x0) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/components/ideintf/lazideintf.pas:772
0000153 0x08117659 in TMAINIDE__MNUENVGENERALOPTIONSCLICKED (this=0x98f9c64, SENDER=0xa69c4c4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/ide/main.pp:4953
0000154 0x08622571 in TIDEMENUITEM__MENUITEMCLICK (this=0xa69c4c4, SENDER=0xa69bea4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/components/ideintf/menuintf.pas:547
0000155 0x08626232 in TIDEMENUCOMMAND__MENUITEMCLICK (this=0xa69c4c4, SENDER=0xa69bea4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/components/ideintf/menuintf.pas:1699
0000156 0x08284dab in TMENUITEM__CLICK (this=0xa69bea4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/menuitem.inc:83
0000157 0x0828564b in TMENUITEM__DOCLICKED (this=0xa69bea4, MSG=) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/menuitem.inc:293
0000158 0x0807a3b5 in TOBJECT__DISPATCH (this=0xa69bea4, MESSAGE=) at /mnt/shares/ohjelmointi2/fpc/source/git_source/rtl/inc/objpas.inc:684
0000159 0x08429f7e in DELIVERMESSAGE (TARGET=0xa69bea4, AMESSAGE=) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/lclmessageglue.pas:114
0000160 0x0830ad0b in DELIVERMESSAGE (TARGET=0xa69bea4, AMESSAGE=) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2proc.inc:3773
0000161 0x084ab74f in GTK2MENUITEMACTIVATE (WIDGET=0xa6a3e78, DATA=0xa69bea4) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2wsmenus.pp:139
0000162 0xf7885dbe in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000163 0xf786e590 in  () at /usr/lib/libgobject-2.0.so.0
0000164 0xf787573c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000165 0xf78764a5 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000166 0xf7b1d05d in gtk_widget_activate () at /usr/lib/libgtk-x11-2.0.so.0
0000167 0xf79f8374 in gtk_menu_shell_activate_item () at /usr/lib/libgtk-x11-2.0.so.0
0000168 0xf79f8680 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000169 0xf79ec41a in  () at /usr/lib/libgtk-x11-2.0.so.0
0000170 0xf79e3958 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000171 0xf7885dbe in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000172 0xf786dcf1 in  () at /usr/lib/libgobject-2.0.so.0
0000173 0xf7874d69 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000174 0xf78764a5 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000175 0xf7b1e726 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000176 0xf7b1ea4e in gtk_widget_event () at /usr/lib/libgtk-x11-2.0.so.0
0000177 0xf79e19ed in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
#178 0xf79e1e3c in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
0000179 0xf7dd37f7 in  () at /usr/lib/libgdk-x11-2.0.so.0
0000180 0xf7778956 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
0000181 0xf777a99a in  () at /usr/lib/libglib-2.0.so.0
0000182 0xf777a9e6 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
0000183 0x081586a2 in TGTK2WIDGETSET__APPWAITMESSAGE (this=0x9738034) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/interfaces/gtk2/gtk2widgetset.inc:2433
0000184 0x080ed82e in TAPPLICATION__IDLE (this=0x9762a44, WAIT=true) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/application.inc:414
0000185 0x080efd61 in TAPPLICATION__HANDLEMESSAGE (this=0x9762a44) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/application.inc:1283
0000186 0x080f033d in TAPPLICATION__RUNLOOP (this=0x9762a44) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/application.inc:1419
0000187 0x082f321c in TWIDGETSET__APPRUN (this=0x9738034, ALOOP=...) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/interfacebase.inc:54
0000188 0x080f02e5 in TAPPLICATION__RUN (this=0x9762a44) at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/lcl/include/application.inc:1407
0000189 0x08060383 in main () at /mnt/shares/ohjelmointi2/lazarus/i386/trunk/1.9.0/binary/trunk/ide/lazarus.pp:155


Cyrax

2019-11-13 11:31

reporter   ~0119263

FPC trunk r43433 under x86_64-linux LXC container.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff74dd17d in g_type_check_instance_is_fundamentally_a () from /usr/lib/libgobject-2.0.so.0
#0  0x00007ffff74dd17d in g_type_check_instance_is_fundamentally_a () at /usr/lib/libgobject-2.0.so.0
0000001  0x00007ffff74fc306 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
0000002  0x00007ffff77716f8 in gtk_widget_set_parent_window () at /usr/lib/libgtk-x11-2.0.so.0
0000003  0x00007ffff7774b5d in gtk_widget_unparent () at /usr/lib/libgtk-x11-2.0.so.0
0000004  0x00007ffff7666ac4 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000005  0x00007ffff765bcbf in  () at /usr/lib/libgtk-x11-2.0.so.0
0000006  0x00007ffff74fad5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000007  0x00007ffff74e89e4 in  () at /usr/lib/libgobject-2.0.so.0
0000008  0x00007ffff74ec98a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000009  0x00007ffff74ed7f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000010 0x00007ffff7775f15 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000011 0x00007ffff74fc71a in g_object_run_dispose () at /usr/lib/libgobject-2.0.so.0
0000012 0x000000000071a148 in DESTROYWIDGET (WIDGET=0x46036d0) at gtk2proc.inc:4243
0000013 0x0000000000537610 in TGTK2WIDGETSET__DESTROYCONNECTEDWIDGET (this=0x1fc96a8, WIDGET=0x46036d0, CHECKIFDESTROYING=false) at gtk2widgetset.inc:4829
0000014 0x000000000053729c in TGTK2WIDGETSET__DESTROYLCLCOMPONENT (this=0x1fc96a8, SENDER=0x450b338) at gtk2widgetset.inc:4740
0000015 0x00000000008ed603 in TGTK2WSMENUITEM__DESTROYHANDLE (self=0x2eb4908, AMENUITEM=0x450b338) at gtk2wsmenus.pp:364
0000016 0x00000000006836c0 in TMENUITEM__DESTROYHANDLE (this=0x450b338) at include/menuitem.inc:771
0000017 0x000000000068369a in TMENUITEM__DESTROYHANDLE (this=0x42a08c8) at include/menuitem.inc:767
0000018 0x0000000000680988 in TMENU__DESTROYHANDLE (this=0x4074de8) at include/menu.inc:159
0000019 0x00000000006863a7 in TPOPUPMENU__POPUP (this=0x4074de8, X=568, Y=288) at include/popupmenu.inc:78
0000020 0x00000000006c62ef in TTOOLBAR__CHECKMENUDROPDOWN (this=0x4578848, BUTTON=0x457abf8) at include/toolbar.inc:1115
0000021 0x00000000006c1a2b in TTOOLBUTTON__CHECKMENUDROPDOWN (this=0x457abf8) at include/toolbutton.inc:910
0000022 0x0000000000d1dc5c in TDEBUGGERCLASSOPTIONSFRAME__TBSELECTCLICK (this=0x45774b8, SENDER=0x457abf8) at ../debugger/frames/debugger_class_options.pas:272
0000023 0x0000000000632276 in TCONTROL__CLICK (this=0x457abf8) at include/control.inc:2912
0000024 0x00000000006c1a85 in TTOOLBUTTON__CLICK (this=0x457abf8) at include/toolbutton.inc:919
0000025 0x00000000006bf211 in TTOOLBUTTON__MOUSEUP (this=0x457abf8, BUTTON=MBLEFT, SHIFT=..., X=147, Y=10) at include/toolbutton.inc:175
0000026 0x0000000000630f6c in TCONTROL__DOMOUSEUP (this=0x457abf8, MESSAGE=..., BUTTON=MBLEFT) at include/control.inc:2302
0000027 0x0000000000631eb7 in TCONTROL__WMLBUTTONUP (this=0x457abf8, MESSAGE=...) at include/control.inc:2784
0000028 0x000000000043ad98 in TOBJECT__DISPATCH (this=0x457abf8, MESSAGE=) at ../inc/objpas.inc:684
0000029 0x0000000000630d15 in TCONTROL__WNDPROC (this=0x457abf8, THEMESSAGE=...) at include/control.inc:2242
0000030 0x000000000062ed9a in TCONTROL__PERFORM (this=0x457abf8, MSG=514, WPARAM=0, LPARAM=655507) at include/control.inc:1580
0000031 0x000000000061f223 in TWINCONTROL__ISCONTROLMOUSEMSG (this=0x4578848, THEMESSAGE=) at include/wincontrol.inc:4755
0000032 0x0000000000620c86 in TWINCONTROL__WNDPROC (this=0x4578848, MESSAGE=...) at include/wincontrol.inc:5377
0000033 0x000000000085ccb6 in DELIVERMESSAGE (TARGET=0x4578848, AMESSAGE=) at lclmessageglue.pas:112
0000034 0x0000000000718dbf in DELIVERMESSAGE (TARGET=0x4578848, AMESSAGE=) at gtk2proc.inc:3773
0000035 0x000000000072bab6 in DELIVERMOUSEUPMESSAGE (WIDGET=0x45d5820, EVENT=0x3bd14e0, AWINCONTROL=0x4578848) at gtk2callback.inc:2205
0000036 0x000000000072bcc6 in GTKMOUSEBTNRELEASE (WIDGET=0x3d61030, EVENT=0x3bd14e0, DATA=0x4578848) at gtk2callback.inc:2282
0000037 0x00007ffff76557cc in  () at /usr/lib/libgtk-x11-2.0.so.0
0000038 0x00007ffff74fad5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000039 0x00007ffff74e888e in  () at /usr/lib/libgobject-2.0.so.0
0000040 0x00007ffff74ebf1c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000041 0x00007ffff74ed7f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000042 0x00007ffff7770235 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000043 0x00007ffff7653a0e in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
0000044 0x00007ffff7653e43 in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
0000045 0x00007ffff7be3d5e in  () at /usr/lib/libgdk-x11-2.0.so.0
0000046 0x00007ffff740e3ee in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
0000047 0x00007ffff7410201 in  () at /usr/lib/libglib-2.0.so.0
0000048 0x00007ffff7410241 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
0000049 0x00000000005314af in TGTK2WIDGETSET__APPWAITMESSAGE (this=0x1fc96a8) at gtk2widgetset.inc:2447
0000050 0x00000000004ba719 in TAPPLICATION__IDLE (this=0x1fc6fa8, WAIT=true) at include/application.inc:414
0000051 0x00000000004b3695 in TCUSTOMFORM__SHOWMODAL (this=0x40a4008) at include/customform.inc:2978
0000052 0x0000000000d66803 in TIDEOPTIONSDIALOG__SHOWMODAL (this=0x40a4008) at ideoptionsdlg.pas:666
#53 0x00000000004e9fd9 in TMAINIDE__DOOPENIDEOPTIONS (this=0x2042408, AEDITOR=0x0, ACAPTION=0x0, AOPTIONSFILTER=..., highAOPTIONSFILTER=-1, ASETTINGS=...) at main.pp:5029
#54 0x0000000000a9f026 in TLAZIDEINTERFACE__DOOPENIDEOPTIONS (this=0x2042408, AEDITOR=0x0, ACAPTION=0x0) at lazideintf.pas:772
0000055 0x00000000004e9a57 in TMAINIDE__MNUENVGENERALOPTIONSCLICKED (this=0x2042408, SENDER=0x358fac8) at main.pp:4953
0000056 0x0000000000a9832d in TIDEMENUITEM__MENUITEMCLICK (this=0x358fac8, SENDER=0x3591f58) at menuintf.pas:547
0000057 0x0000000000a9ce0d in TIDEMENUCOMMAND__MENUITEMCLICK (this=0x358fac8, SENDER=0x3591f58) at menuintf.pas:1699
0000058 0x0000000000681538 in TMENUITEM__CLICK (this=0x3591f58) at include/menuitem.inc:83
0000059 0x0000000000681ff6 in TMENUITEM__DOCLICKED (this=0x3591f58, MSG=) at include/menuitem.inc:293
0000060 0x000000000043ad98 in TOBJECT__DISPATCH (this=0x3591f58, MESSAGE=) at ../inc/objpas.inc:684
0000061 0x000000000085ccd5 in DELIVERMESSAGE (TARGET=0x3591f58, AMESSAGE=) at lclmessageglue.pas:114
0000062 0x0000000000718dbf in DELIVERMESSAGE (TARGET=0x3591f58, AMESSAGE=) at gtk2proc.inc:3773
0000063 0x00000000008ecc34 in GTK2MENUITEMACTIVATE (WIDGET=0x35aa820, DATA=0x3591f58) at gtk2wsmenus.pp:139
0000064 0x00007ffff74fad5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000065 0x00007ffff74e888e in  () at /usr/lib/libgobject-2.0.so.0
0000066 0x00007ffff74ec98a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000067 0x00007ffff74ed7f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000068 0x00007ffff776ef38 in gtk_widget_activate () at /usr/lib/libgtk-x11-2.0.so.0
0000069 0x00007ffff7667e71 in gtk_menu_shell_activate_item () at /usr/lib/libgtk-x11-2.0.so.0
0000070 0x00007ffff7668140 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000071 0x00007ffff76557cc in  () at /usr/lib/libgtk-x11-2.0.so.0
0000072 0x00007ffff74fad5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
0000073 0x00007ffff74e7ff8 in  () at /usr/lib/libgobject-2.0.so.0
0000074 0x00007ffff74ebf1c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
0000075 0x00007ffff74ed7f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
0000076 0x00007ffff7770235 in  () at /usr/lib/libgtk-x11-2.0.so.0
0000077 0x00007ffff7653a0e in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
0000078 0x00007ffff7653e43 in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
0000079 0x00007ffff7be3d5e in  () at /usr/lib/libgdk-x11-2.0.so.0
0000080 0x00007ffff740e3ee in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
0000081 0x00007ffff7410201 in  () at /usr/lib/libglib-2.0.so.0
0000082 0x00007ffff7410241 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
0000083 0x00000000005314af in TGTK2WIDGETSET__APPWAITMESSAGE (this=0x1fc96a8) at gtk2widgetset.inc:2447
0000084 0x00000000004ba719 in TAPPLICATION__IDLE (this=0x1fc6fa8, WAIT=true) at include/application.inc:414
0000085 0x00000000004bcff4 in TAPPLICATION__HANDLEMESSAGE (this=0x1fc6fa8) at include/application.inc:1283
0000086 0x00000000004bd630 in TAPPLICATION__RUNLOOP (this=0x1fc6fa8) at include/application.inc:1419
0000087 0x00000000006febb4 in TWIDGETSET__APPRUN (this=0x1fc96a8, ALOOP=...) at include/interfacebase.inc:54
0000088 0x00000000004bd5c0 in TAPPLICATION__RUN (this=0x1fc6fa8) at include/application.inc:1407
0000089 0x000000000041f3d9 in main () at lazarus.pp:155

Cyrax

2019-11-13 12:28

reporter   ~0119264

Looks like that my assumption that this bug was fixed on FPC trunk r43457 onward is wrong.

Martin Friebe

2019-11-17 15:31

manager   ~0119365

I don't want to change this for all OS. Since the current code is more correct. The new code "leaks" menus until the form is closed (they are reachable, but hold when no longer needed).

I can not reproduce the issue (works fine on my older fedora install).

Can you test if the following workaround does the trick?
Insert the ifdef block.

procedure TDebuggerClassOptionsFrame.FillNameDropDown;
....
begin
  {$IFDEF linux}
  // Workaround for issue https://bugs.freepascal.org/view.php?id=36306
  tbDropMenu := TPopupMenu.Create(Self);
  tbSelect.DropdownMenu := tbDropMenu;
  {$ENDIF}
  tbDropMenu.Items.Clear;


This will prevent the old tbDropMenu from being cleared. So I think it might be ok.

Martin Friebe

2019-11-28 16:33

manager   ~0119534

@Cyrax can you test the alternative workaround please?

Cyrax

2019-11-28 20:11

reporter   ~0119538

Oh, sorry. I have been busy with other stuff.
Yes, the alternative workaround works.

Martin Friebe

2019-11-29 03:59

manager   ~0119543

workaround in 62313

Issue History

Date Modified Username Field Change
2019-11-13 01:43 Cyrax New Issue
2019-11-13 01:43 Cyrax Status new => assigned
2019-11-13 01:43 Cyrax Assigned To => Martin Friebe
2019-11-13 01:43 Cyrax File Added: debugger_class_options.diff
2019-11-13 02:59 Martin Friebe Relationship added parent of 0036306
2019-11-13 03:01 Martin Friebe Note Added: 0119252
2019-11-13 03:06 Martin Friebe Status assigned => feedback
2019-11-13 03:06 Martin Friebe LazTarget => -
2019-11-13 03:06 Martin Friebe Note Added: 0119253
2019-11-13 11:00 Cyrax Note Added: 0119262
2019-11-13 11:00 Cyrax Status feedback => assigned
2019-11-13 11:09 Cyrax Note Edited: 0119262 View Revisions
2019-11-13 11:17 Cyrax Note Edited: 0119262 View Revisions
2019-11-13 11:31 Cyrax Note Added: 0119263
2019-11-13 12:28 Cyrax Note Added: 0119264
2019-11-17 15:31 Martin Friebe Status assigned => feedback
2019-11-17 15:31 Martin Friebe Note Added: 0119365
2019-11-28 16:33 Martin Friebe Note Added: 0119534
2019-11-28 20:11 Cyrax Note Added: 0119538
2019-11-28 20:11 Cyrax Status feedback => assigned
2019-11-29 03:59 Martin Friebe Note Added: 0119543
2019-11-29 15:53 Martin Friebe Relationship replaced child of 0036306
2019-11-29 15:53 Martin Friebe Status assigned => resolved
2019-11-29 15:53 Martin Friebe Resolution open => fixed
2019-11-29 15:53 Martin Friebe Widgetset GTK 2 => GTK 2