emacs-devel
[Top][All Lists]
Advanced

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

Re: Building the igc branch on MS-Windows


From: Eli Zaretskii
Subject: Re: Building the igc branch on MS-Windows
Date: Sat, 27 Apr 2024 17:47:37 +0300

> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> Cc: eller.helmut@gmail.com,  emacs-devel@gnu.org
> Date: Sat, 27 Apr 2024 16:11:50 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> >> Cc: eller.helmut@gmail.com,  emacs-devel@gnu.org
> >> Date: Sat, 27 Apr 2024 11:04:40 +0200
> >> 
> >> Eli Zaretskii <eliz@gnu.org> writes:
> >> 
> >> There is one thing in struct font I'm not sure about. it has
> >> 
> >>   font -> font_driver -> Lisp_Object .type
> >> 
> >> where type is a symbol from DEFSYM under macOS.
> >
> > Likewise in the w32 build: those symbols are defined via DEFSYM.
> 
> I've added a fix_font, so we should be good now in any case.

It seems to crash:

  Thread 1 received signal SIGSEGV, Segmentation fault.
  fix_lisp_obj (ss=ss@entry=0x6fdf358, pobj=0x14379823) at igc.c:399
  399         mps_word_t word = *p;
  (gdb) bt
  #0  fix_lisp_obj (ss=ss@entry=0x6fdf358, pobj=0x14379823) at igc.c:399
  #1  0x008c19be in fix_font (f=0xc0397c0, ss=0x6fdf358) at igc.c:1617
  #2  fix_vector (v=0xc0397c0, ss=0x6fdf358) at igc.c:1741
  #3  dflt_scanx (ss=ss@entry=0x6fdf358, base_start=<optimized out>,
      base_start@entry=0xc038000, base_limit=base_limit@entry=0xc039d68,
      closure=closure@entry=0x0) at igc.c:1211
  #4  0x008c1e8b in dflt_scan (ss=0x6fdf358, base_start=0xc038000,
      base_limit=0xc039d68) at igc.c:1254
  #5  0x00998f79 in TraceScanFormat (limit=0xc039d68, base=0xc038000,
      ss=0x6fdf354) at trace.c:1539
  #6  amcSegScan (totalReturn=0x6fdf350, seg=0xa606cf0, ss=0x6fdf354)
      at poolamc.c:1427
  #7  0x009b8b95 in traceScanSegRes (seg=0xa606cf0, arena=0x1b0000,
      rank=<optimized out>, ts=1) at trace.c:1205
  #8  traceScanSegRes (ts=1, rank=<optimized out>, arena=0x1b0000, 
seg=0xa606cf0)
      at trace.c:1182
  #9  0x009b8d69 in traceScanSeg (ts=1, rank=1, arena=0x1b0000, seg=0xa606cf0)
      at trace.c:1267
  #10 0x009b9612 in TraceAdvance (trace=<optimized out>) at trace.c:1728
  #11 0x009c675f in TracePoll (workReturn=workReturn@entry=0x6fdf49c,
      collectWorldReturn=collectWorldReturn@entry=0x6fdf498,
      globals=globals@entry=0x1b0008, collectWorldAllowed=1) at trace.c:1849
  #12 0x009c6927 in ArenaPoll (globals=0x1b0008) at global.c:745
  #13 0x009c6ab8 in ArenaRelease (globals=<optimized out>,
      globals@entry=0x1b0008) at traceanc.c:531
  #14 0x009c6b22 in ArenaStartCollect (globals=globals@entry=0x1b0008,
      why=why@entry=4) at traceanc.c:637
  #15 0x009c6b74 in ArenaCollect (globals=globals@entry=0x1b0008,
      why=why@entry=4) at traceanc.c:652
  #16 0x009c6c16 in mps_arena_collect (arena=0x1b0000) at mpsi.c:313
  #17 0x008c22bd in igc_collect () at igc.c:2561
  #18 0x008c22d4 in Figc__collect () at igc.c:2569
  #19 0x008382f9 in eval_sub (form=0xabffb0b) at eval.c:2532
  #20 0x008385fc in Fprogn (body=0xabffb3b) at eval.c:439
  #21 0x008382a1 in eval_sub (form=form@entry=0xabffabb) at eval.c:2486
  #22 0x0083a3ee in Feval (form=0xabffabb, lexical=0x18) at eval.c:2396
  #23 0x008867d5 in exec_byte_code (fun=0xd5fe05 <Seval+5>,
      fun@entry=0x1a7ccb9d, args_template=513, nargs=2, nargs@entry=0,
      args=0x1ac6c0f8, args@entry=0x6fdf840) at lisp.h:751
  #24 0x00838798 in funcall_lambda (fun=fun@entry=0x1a7ccb9d,
      nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x6fdf840) at eval.c:3200
  #25 0x008398a0 in apply_lambda (fun=fun@entry=0x1a7ccb9d,
      args=<optimized out>, count=count@entry=64) at eval.c:3154
  #26 0x00837e9d in eval_sub (form=form@entry=0x1a8a163b) at eval.c:2625
  #27 0x0083a3ee in Feval (form=0x1a8a163b, lexical=lexical@entry=0x18)
      at eval.c:2396
  #28 0x00794991 in top_level_2 () at lisp.h:1179
  #29 0x0083291d in internal_condition_case (
      bfun=bfun@entry=0x794970 <top_level_2>, handlers=handlers@entry=0x48,
      hfun=hfun@entry=0x79e4f6 <cmd_error>) at eval.c:1544
  #30 0x00795113 in top_level_1 (ignore=0x0) at lisp.h:1179
  #31 0x00832837 in internal_catch (tag=tag@entry=0x87a8,
      func=func@entry=0x7950ea <top_level_1>, arg=arg@entry=0x0) at eval.c:1224
  #32 0x0079478f in command_loop () at lisp.h:1179
  #33 0x0079e0b1 in recursive_edit_1 () at keyboard.c:754
  #34 0x0079e3a1 in Frecursive_edit () at keyboard.c:837
  #35 0x009d7d6f in main (argc=<optimized out>, argv=<optimized out>)
      at emacs.c:2626
  (gdb) l
  394     fix_lisp_obj (mps_ss_t ss, Lisp_Object *pobj)
  395     {
  396       MPS_SCAN_BEGIN (ss)
  397       {
  398         mps_word_t *p = (mps_word_t *) pobj;
  399         mps_word_t word = *p;
  400         mps_word_t tag = word & IGC_TAG_MASK;
  401
  402         if (tag == Lisp_Int0 || tag == Lisp_Int1)
  403           return MPS_RES_OK;
  (gdb) p p
  $1 = (mps_word_t *) 0x14379823
  (gdb) p pobj
  $2 = (Lisp_Object *) 0x14379823
  (gdb) p *$
  Cannot access memory at address 0x14379823
  (gdb) fr 1
  #1  0x008c19be in fix_font (f=0xc0397c0, ss=0x6fdf358) at igc.c:1617
  1617        IGC_FIX12_OBJ (ss, &driver->type);
  (gdb) p ss
  $8 = (mps_ss_t) 0x6fdf358
  (gdb) p driver->type
  value has been optimized out
  (gdb) p driver
  $9 = <optimized out>
  (gdb) p f->driver
  $10 = (const struct font_driver *) 0x14379823
  (gdb) p *f
  $11 = {header = {size = 1694498829}, props = {0x0, 0x6ab0, 0x9bacf48, 0x6210,
      0x4f80, 0x14102, 0x19082, 0x19102, 0x36, 0x0, 0x1ba, 0x0, 0xc03a1e3,
      0xaaa3826, 0x6, 0x4c, 0xffffffff}, min_width = 0, max_width = 178368312,
    pixel_size = 178937894, height = 6, space_width = 70, average_width = -1,
    ascent = 0, descent = 178368400, underline_thickness = 178933795,
    underline_position = 4, vertical_centering = 76,
    baseline_offset = 178378356, relative_compose = 178296867,
    default_ascent = 4, encoding_charset = 178363483,
    repertory_charset = 443397523, driver = 0x14379823}

Looks like the pointer to the font points to a bad object?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]