NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gdb 15.2 or 16.1



Martin Husemann <martin%duskware.de@localhost> writes:

> On Mon, Dec 09, 2024 at 10:59:44PM +0000, Van Ly wrote:
>>
>> The last gdb release was 15.2, netbsd-10 has gdb-11 that was a
>> development snapshot.  The downgrade in pkgsrc, gdb-10.1n6, could have
>> fewer bugs.
>
> Or more (or not work at all) on some architectures.

This is the kind of problem AI has the compute and memory to brute force.

>>  Is there a roadmap to gdb 15.2 or 16.1?
>
> Updating gdb in base is a huge task. -current has 13.2 which seems to work
> pretty well right now. This likely what will be in netbsd-11 too.
>
> Anything special you need/expect from newer versions?
>

I figured NetBSD project has priorities higher than for the latest gdb
to be integrated and working.

I was working with collaborators on the emacs bug reporting mailing list
and we got stuck on the following which led to which version of gdb was
available on netbsd being asked,

  -- quote

                                         I find gdb is unable to continue
  at the first 'c' upon windowframe fullheight toggle.

     1  (gdb) b xterm.c:17505
     2  Breakpoint 1 at 0x4cf672: file /u/xxx/src/emacs/29.4/src/xterm.c, line 17505.
     3  (gdb) b xterm.c:27251
     4  Breakpoint 2 at 0x4cf533: file /u/xxx/src/emacs/29.4/src/xterm.c, line 27251.
     5  (gdb) b xterm.c:27327
     6  Breakpoint 3 at 0x4e5216: file /u/xxx/src/emacs/29.4/src/xterm.c, line 27327.
     7  (gdb) info b
     8  Num     Type           Disp Enb Address            What
     9  1       breakpoint     keep y   0x00000000004cf672 in x_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:17505
    10  2       breakpoint     keep y   0x00000000004cf533 in x_handle_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:27251
    11  3       breakpoint     keep y   0x00000000004e5216 in x_check_fullscreen at /u/xxx/src/emacs/29.4/src/xterm.c:27327
    12  (gdb) run -Q
    13  Starting program: /u/xxx/src/emacs/build-29-0/src/emacs -Q
    14  [New LWP 24268 of process 28138]
    15  [New LWP 27847 of process 28138]
    16  [New LWP 26167 of process 28138]
    17  [New process 28138]
    18  [New process 28138]
    19
    20  Thread 1 "" hit Breakpoint 1, x_net_wm_state (f=f@entry=0x74cbbd8d4c10, window=<optimized out>) at /u/xxx/src/emacs/29.4/src/xterm.c:17505
    21  17505	    store_frame_param (f, Qfullscreen, lval); // break here
    22  (gdb) c
    23  Continuing.
    24  [New process 28138]
    25  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
    26  A problem internal to GDB has been detected,
    27  further debugging may prove unreliable.
    28  Quit this debugging session? (y or n) n
    29  Please answer y or n.
    30  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
    31  A problem internal to GDB has been detected,
    32  further debugging may prove unreliable.
    33  Quit this debugging session? (y or n)


  -- quote ends

The diff patch file is attached.

diff --git a/src/xterm.c b/src/xterm.c
index fd3e58f85f6..3087e10dddf 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -18041,7 +18041,12 @@ x_net_wm_state (struct frame *f, Window window)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 }
@@ -28272,7 +28277,12 @@ x_handle_net_wm_state (struct frame *f, const XPropertyEvent *event)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 
@@ -28340,7 +28350,11 @@ x_check_fullscreen (struct frame *f)
 
   /* `x_net_wm_state' might have reset the fullscreen frame parameter,
      restore it. */
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
 }
 
 /* This function is called by x_set_offset to determine whether the window

-- 
vl


Home | Main Index | Thread Index | Old Index