Subject: Re: bug#77024: 31.0.50; feature/igc: crash "switching to thread"

From: Oliver Reiter <[email-masked]>
Date: Wed, 19 Mar 2025 15:46:48 +0100

Eli Zaretskii <[email-masked]> writes:
>
> Just "p *pdl" is what I had in mind.
>
> Thanks.

Ah, didn't know it could be that easy. Here you go:

(gdb) fr 3
#3  0x00005555557a1040 in scan_specpdl (ss=0x7fffb3bb81a8, start=<optimized out>, end=0x555556f684e0, closure=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:1535
1535		  case SPECPDL_FREE:
(gdb) p *pdl
$7 = {
  kind = SPECPDL_UNWIND,
  unwind = {
    kind = SPECPDL_UNWIND,
    func = 0x1,
    arg = XIL(0x100000001),
    eval_depth = 1
  },
  unwind_array = {
    kind = SPECPDL_UNWIND,
    nelts = 1,
    array = 0x100000001
  },
  unwind_ptr = {
    kind = SPECPDL_UNWIND,
    func = 0x1,
    arg = 0x100000001,
    mark = 0x1
  },
  unwind_int = {
    kind = SPECPDL_UNWIND,
    func = 0x1,
    arg = 1
  },
  unwind_intmax = {
    kind = SPECPDL_UNWIND,
    func = 0x1,
    arg = 4294967297
  },
  unwind_excursion = {
    kind = SPECPDL_UNWIND,
    marker = XIL(0x1),
    window = XIL(0x100000001)
  },
  unwind_void = {
    kind = SPECPDL_UNWIND,
    func = 0x1
  },
  let = {
    kind = SPECPDL_UNWIND,
    symbol = XIL(0x1),
    old_value = XIL(0x100000001),
    where = {
      kbd = 0x1,
      buf = XIL(0x1)
    }
  },
  bt = {
    kind = SPECPDL_UNWIND,
    debug_on_exit = false,
    function = XIL(0x1),
    args = 0x100000001,
    nargs = 1
  }
}