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: Fri, 26 Apr 2024 10:41:38 +0300

> From: Helmut Eller <eller.helmut@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org
> Date: Fri, 26 Apr 2024 09:18:59 +0200
> 
> >> ./src/emacs -Q src/xdisp.c -eval '(igc--collect)'
> >
> > I would start by investigating what stuff reachable from struct frame
> > is and is not traced, which depends a bit on the platform. Also font
> > stuff probably, terminals, scroll bar things (at least in NS I know
> > there is something), and I don't know what else.
> 
> The problem was a corrupted font.  I added the code below and it now
> survives the first GC cycle.  In general, fix_frame must scan the same
> fields as mark_frame in alloc.c does.  Is that about right?  Since MPS
> wants the address of the fields (instead the value), some creativity may
> be required.  Is that also right?  Or can I stupidly copy what
> mark_frame does?

Thanks, I cannot answer all of the questions above, but I nevertheless
installed this in your name, with one difference:

> +    if (FRAME_WINDOW_P (f) && FRAME_OUTPUT_DATA (f))
> +      {
> +     struct font *font = FRAME_FONT (f);
> +     if (font)
> +       IGC_FIX12_RAW(ss, &FRAME_FONT (f));

You already used FRAME_FONT, so not necessary to use it again:

    if (FRAME_WINDOW_P (f) && FRAME_OUTPUT_DATA (f))
      {
        struct font *font = FRAME_FONT (f);
        if (font)
          IGC_FIX12_RAW(ss, &font);  <<<<<<<<<<<<<<<<<<<<<
      }

However, the crashes while scrolling through xdisp.c are still there.
I just had 2 of them; backtraces below.  It sounds like the first one
is due to Lisp strings, but the second one is related to markers.

  igc.c:1584: Emacs fatal error: assertion failed: !"other"

  Thread 1 hit Breakpoint 1, terminate_due_to_signal (sig=sig@entry=22,
      backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:442
  442     {
  (gdb) bt
  #0  terminate_due_to_signal (sig=sig@entry=22,
      backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:442
  #1  0x00858430 in die (msg=msg@entry=0xde4937 <i_fwd+1479> "!\"other\"",
      file=file@entry=0xde4500 <i_fwd+400> "igc.c", line=line@entry=1584)
      at alloc.c:8334
  #2  0x00911482 in igc_assert_fail (msg=0xde4937 <i_fwd+1479> "!\"other\"",
      line=1584, file=0xde4500 <i_fwd+400> "igc.c") at igc.c:84
  #3  fix_other (o=0x13ca4008, ss=0x6fb83c8) at igc.c:1584
  #4  fix_vector (v=0x13ca4008, ss=0x6fb83c8) at igc.c:1661
  #5  dflt_scanx (ss=ss@entry=0x6fb83c8, base_start=<optimized out>,
      base_start@entry=0x13ca4000, base_limit=base_limit@entry=0x13ca6000,
      closure=closure@entry=0x0) at igc.c:1202
  #6  0x009116c2 in dflt_scan (ss=0x6fb83c8, base_start=0x13ca4000,
      base_limit=0x13ca6000) at igc.c:1245
  #7  0x009defa6 in TraceScanFormat (limit=0x13ca6000, base=0x13ca4000,
      ss=0x6fb83c4) at trace.c:1539
  #8  amcSegScan (totalReturn=0x6fb83c0, seg=0xa4b538c, ss=0x6fb83c4)
      at poolamc.c:1440
  #9  0x009feb25 in traceScanSegRes (seg=0xa4b538c, arena=0x1f0000,
      rank=<optimized out>, ts=1) at trace.c:1205
  #10 traceScanSegRes (ts=1, rank=<optimized out>, arena=0x1f0000, 
seg=0xa4b538c)
      at trace.c:1182
  #11 0x009fecf9 in traceScanSeg (ts=1, rank=1, arena=0x1f0000, seg=0xa4b538c)
      at trace.c:1267
  #12 0x009ff5a2 in TraceAdvance (trace=<optimized out>) at trace.c:1728
  #13 0x00a0c6ef in TracePoll (workReturn=workReturn@entry=0x6fb850c,
      collectWorldReturn=collectWorldReturn@entry=0x6fb8508,
      globals=globals@entry=0x1f0008, collectWorldAllowed=1) at trace.c:1849
  #14 0x00a0c8b7 in ArenaPoll (globals=globals@entry=0x1f0008) at global.c:745
  #15 0x00a0d047 in mps_ap_fill (p_o=p_o@entry=0x6fb85dc,
      mps_ap=mps_ap@entry=0xa306c88, size=size@entry=480) at mpsi.c:1097
  #16 0x0090fbe8 in alloc (size=480, size@entry=468,
      type=type@entry=IGC_OBJ_STRING_DATA, pvec_type=pvec_type@entry=PVEC_FREE)
      at igc.c:2590
  #17 0x00911ded in alloc_string_data (clear=false, nbytes=467) at igc.c:2638
  #18 igc_make_string (nchars=nchars@entry=467, nbytes=nbytes@entry=467,
      unibyte=unibyte@entry=false, clear=clear@entry=false) at igc.c:2683
  #19 0x00911e36 in igc_make_multibyte_string (nchars=nchars@entry=467,
      nbytes=nbytes@entry=467, clear=clear@entry=false) at igc.c:2690
  #20 0x00858799 in make_clear_multibyte_string (clearit=false, nbytes=467,
      nchars=467) at alloc.c:2633
  #21 make_clear_string (length=length@entry=467, clearit=clearit@entry=false)
      at alloc.c:2610
  #22 0x008587dc in make_clear_string (clearit=<optimized out>,
      length=<optimized out>) at alloc.c:2619
  #23 0x0088e42d in Fcopy_sequence (arg=arg@entry=XIL(0xade568c)) at fns.c:791
  #24 0x0084096d in compile_pattern_1 (posix=<optimized out>, translate=XIL(0),
      pattern=XIL(0xade568c), cp=0xe76f5c <searchbufs+3388>) at search.c:131
  #25 compile_pattern (pattern=XIL(0xade568c), regp=0xd9cbf4 <main_thread+84>,
      translate=XIL(0), posix=posix@entry=false, multibyte=multibyte@entry=true)
      at search.c:236
  #26 0x00840bb8 in looking_at_1 (string=<optimized out>, posix=<optimized out>,
      modify_data=<optimized out>) at search.c:281
  #27 0x008d60b5 in exec_byte_code (fun=XIL(0xda3f25),
      fun@entry=XIL(0x134c2b85), args_template=513, nargs=nargs@entry=1,
      args=0x1a9fa50c, args@entry=0x1a9fa100) at lisp.h:751
  #28 0x008882b8 in funcall_lambda (fun=XIL(0x134c2b85), nargs=nargs@entry=1,
      arg_vector=arg_vector@entry=0x1a9fa100) at eval.c:3200
  #29 0x008887da in funcall_general (fun=<optimized out>,
      numargs=numargs@entry=1, args=args@entry=0x1a9fa100) at eval.c:2994
  #30 0x00883f45 in Ffuncall (args=0x1a9fa0fc, nargs=2) at eval.c:3032
  #31 Ffuncall (nargs=2, args=0x1a9fa0fc) at eval.c:3006
  #32 0x00884733 in run_hook_wrapped_funcall (nargs=nargs@entry=2,
      args=args@entry=0x1a9fa0fc) at eval.c:2810
  #33 0x00882c6f in run_hook_with_args (nargs=2, args=0x1a9fa0fc,
      funcall=0x884710 <run_hook_wrapped_funcall>) at eval.c:2891
  #34 0x00882f2d in Frun_hook_wrapped (nargs=2, args=0x1a9fa0fc) at eval.c:2825
  #35 0x008d60b5 in exec_byte_code (fun=XIL(0xda5d45),
      fun@entry=XIL(0x1a28a13d), args_template=514, nargs=2, nargs@entry=1,
      args=0x1a9fa0fc, args@entry=0x6fb8adc) at lisp.h:751
  #36 0x008882b8 in funcall_lambda (fun=XIL(0x1a28a13d), nargs=nargs@entry=1,
      arg_vector=arg_vector@entry=0x6fb8adc) at eval.c:3200
  #37 0x008887da in funcall_general (fun=<optimized out>,
      numargs=numargs@entry=1, args=args@entry=0x6fb8adc) at eval.c:2994
  #38 0x00883f45 in Ffuncall (args=0x6fb8ad8, nargs=2) at eval.c:3032
  #39 Ffuncall (nargs=2, args=0x6fb8ad8) at eval.c:3006
  #40 0x00882605 in internal_condition_case_n (
      bfun=bfun@entry=0x883e4a <Ffuncall>, nargs=nargs@entry=2,
      args=args@entry=0x6fb8ad8, handlers=handlers@entry=XIL(0x18),
      hfun=hfun@entry=0x72a268 <dsafe_eval_handler>) at eval.c:1624
  #41 0x00710eef in dsafe__call (inhibit_quit=inhibit_quit@entry=false,
      f=0x883e4a <Ffuncall>, nargs=nargs@entry=2, args=args@entry=0x6fb8ad8)
      at lisp.h:1178
  #42 0x00710f55 in dsafe__call (args=0x6fb8ad8, nargs=2, f=<optimized out>,
      inhibit_quit=false) at xdisp.c:3056
  #43 dsafe_call1 (f=f@entry=XIL(0x193da700), arg=arg@entry=make_fixnum(371707))
      at xdisp.c:3097
  #44 0x00728f47 in handle_fontified_prop (it=0x6fba6d0) at xdisp.c:4616
  #45 handle_fontified_prop (it=<optimized out>) at xdisp.c:4532
  #46 0x0072d708 in handle_stop (it=it@entry=0x6fba6d0) at xdisp.c:4136
  #47 0x0073983e in next_element_from_buffer (it=0x6fba6d0) at xdisp.c:9643
  #48 0x007370ab in get_next_display_element (it=it@entry=0x6fba6d0)
      at xdisp.c:8209
  #49 0x00740d46 in display_line (it=it@entry=0x6fba6d0,
      cursor_vpos=cursor_vpos@entry=0) at xdisp.c:25295
  #50 0x007475c1 in try_window (window=<optimized out>,
      window@entry=XIL(0xaa1c62d), pos=..., flags=<optimized out>, 
flags@entry=0)
      at xdisp.c:21136
  #51 0x00768505 in redisplay_window (window=window@entry=XIL(0xaa1c62d),
      just_this_one_p=just_this_one_p@entry=true) at xdisp.c:20245
  #52 0x0076cab8 in redisplay_window_1 (window=XIL(0xaa1c62d)) at xdisp.c:18023
  #53 0x008824bb in internal_condition_case_1 (
      bfun=bfun@entry=0x76ca80 <redisplay_window_1>, arg=XIL(0xaa1c62d),
      handlers=XIL(0x1a471243),
      hfun=hfun@entry=0x716297 <redisplay_window_error>) at eval.c:1568
  #54 0x0075124e in redisplay_internal () at xdisp.c:17512
  #55 0x00752463 in redisplay () at xdisp.c:16562
  #56 0x007f6088 in read_char (commandflag=<optimized out>, commandflag@entry=1,
      map=<optimized out>, map@entry=XIL(0x134c1bd3),
      prev_event=<optimized out>, used_mouse_menu=<optimized out>,
      used_mouse_menu@entry=0x6fbf7fb, end_time=<optimized out>,
      end_time@entry=0x0) at keyboard.c:2678
  #57 0x007f96bd in read_key_sequence (keybuf=keybuf@entry=0x6fbf8d8,
      prompt=prompt@entry=XIL(0),
      dont_downcase_last=dont_downcase_last@entry=false,
      can_return_switch_frame=<optimized out>,
      can_return_switch_frame@entry=true, fix_current_buffer=<optimized out>,
      fix_current_buffer@entry=true, prevent_redisplay=<optimized out>,
      prevent_redisplay@entry=false, disable_text_conversion_p=false)
      at keyboard.c:10727
  #58 0x007fb24b in command_loop_1 () at lisp.h:1178
  #59 0x0088241d in internal_condition_case (
      bfun=bfun@entry=0x7fb090 <command_loop_1>,
      handlers=handlers@entry=XIL(0x48), hfun=hfun@entry=0x7ee3d6 <cmd_error>)
      at eval.c:1544
  #60 0x007e46eb in command_loop_2 (handlers=XIL(0x48)) at keyboard.c:1168
  #61 0x00882337 in internal_catch (tag=tag@entry=XIL(0x8790),
      func=func@entry=0x7e46cb <command_loop_2>, arg=arg@entry=XIL(0x48))
      at eval.c:1224
  #62 0x007e468b in command_loop () at lisp.h:1178
  #63 0x007edf91 in recursive_edit_1 () at keyboard.c:754
  #64 0x007ee281 in Frecursive_edit () at keyboard.c:837
  #65 0x00a1dcff in main (argc=<optimized out>, argv=<optimized out>)
      at emacs.c:2626

  Lisp Backtrace:

  eval.c:120: Emacs fatal error: assertion failed: pdl->kind == 
SPECPDL_BACKTRACE

  Thread 1 hit Breakpoint 1, terminate_due_to_signal (sig=sig@entry=22,
      backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:442
  442     {
  The program being debugged stopped while in a function called from GDB.
  Evaluation of the expression containing the function
  (backtrace_function) will be abandoned.
  When the function is done executing, GDB will silently stop.


  igc.c:1598: Emacs fatal error: assertion failed: !"other"

  Thread 1 hit Breakpoint 1, terminate_due_to_signal (sig=sig@entry=22,
      backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:442
  442     {
  (gdb) bt
  #0  terminate_due_to_signal (sig=sig@entry=22,
      backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:442
  #1  0x00f987e0 in die (msg=msg@entry=0x152ea77 <i_fwd+1479> "!\"other\"",
      file=file@entry=0x152e640 <i_fwd+400> "igc.c", line=line@entry=1598)
      at alloc.c:8334
  #2  0x01051a92 in igc_assert_fail (msg=0x152ea77 <i_fwd+1479> "!\"other\"",
      line=1598, file=0x152e640 <i_fwd+400> "igc.c") at igc.c:87
  #3  fix_other (o=0x13cac008, ss=0xbf8478) at igc.c:1598
  #4  fix_vector (v=0x13cac008, ss=0xbf8478) at igc.c:1675
  #5  dflt_scanx (ss=ss@entry=0xbf8478, base_start=<optimized out>,
      base_start@entry=0x13cac000, base_limit=base_limit@entry=0x13cae000,
      closure=closure@entry=0x0) at igc.c:1207
  #6  0x01051d1d in dflt_scan (ss=0xbf8478, base_start=0x13cac000,
      base_limit=0x13cae000) at igc.c:1250
  #7  0x01128ea6 in TraceScanFormat (limit=0x13cae000, base=0x13cac000,
      ss=0xbf8474) at trace.c:1539
  #8  amcSegScan (totalReturn=0xbf8470, seg=0xa47cf34, ss=0xbf8474)
      at poolamc.c:1440
  #9  0x01148a25 in traceScanSegRes (seg=0xa47cf34, arena=0x1f0000,
      rank=<optimized out>, ts=1) at trace.c:1205
  #10 traceScanSegRes (ts=1, rank=<optimized out>, arena=0x1f0000, 
seg=0xa47cf34)
      at trace.c:1182
  #11 0x01148bf9 in traceScanSeg (ts=1, rank=1, arena=0x1f0000, seg=0xa47cf34)
      at trace.c:1267
  #12 0x011494a2 in TraceAdvance (trace=<optimized out>) at trace.c:1728
  #13 0x011565ef in TracePoll (workReturn=workReturn@entry=0xbf85bc,
      collectWorldReturn=collectWorldReturn@entry=0xbf85b8,
      globals=globals@entry=0x1f0008, collectWorldAllowed=1) at trace.c:1849
  #14 0x011567b7 in ArenaPoll (globals=globals@entry=0x1f0008) at global.c:745
  #15 0x01156f47 in mps_ap_fill (p_o=p_o@entry=0xbf868c,
      mps_ap=mps_ap@entry=0xa2d6c10, size=size@entry=32) at mpsi.c:1097
  #16 0x010501d8 in alloc (size=32, size@entry=24,
      type=type@entry=IGC_OBJ_VECTOR, pvec_type=pvec_type@entry=PVEC_MARKER)
      at igc.c:2604
  #17 0x01052500 in igc_alloc_pseudovector (nwords_mem=5, nwords_lisp=0,
      nwords_zero=0, tag=PVEC_MARKER) at igc.c:2724
  #18 0x00f99644 in allocate_pseudovector (memlen=<optimized out>,
      memlen@entry=5, lisplen=<optimized out>, lisplen@entry=0,
      zerolen=<optimized out>, zerolen@entry=0, tag=<optimized out>,
      tag@entry=PVEC_MARKER) at alloc.c:3782
  #19 0x00f999de in build_marker (buf=0xac4fcf8, charpos=373093, bytepos=373093)
      at alloc.c:4173
  #20 0x00fbe591 in Fpoint_marker () at editfns.c:202
  #21 save_excursion_save (pdl=0x1ba190b0) at editfns.c:782
  #22 0x00fc3c24 in record_unwind_protect_excursion () at eval.c:3600
  #23 0x010160ac in exec_byte_code (fun=XIL(0x14edf25),
      fun@entry=XIL(0x1349542d), args_template=256, nargs=nargs@entry=1,
      args=0x1a9c13b8, args@entry=0x1a9c1100) at bytecode.c:944
  #24 0x00fc86b8 in funcall_lambda (fun=XIL(0x1349542d), nargs=nargs@entry=1,
      arg_vector=arg_vector@entry=0x1a9c1100) at eval.c:3200
  #25 0x00fc8bda in funcall_general (fun=<optimized out>,
      numargs=numargs@entry=1, args=args@entry=0x1a9c1100) at eval.c:2994
  #26 0x00fc4345 in Ffuncall (args=0x1a9c10fc, nargs=2) at eval.c:3032
  #27 Ffuncall (nargs=2, args=0x1a9c10fc) at eval.c:3006
  #28 0x00fc4b33 in run_hook_wrapped_funcall (nargs=nargs@entry=2,
      args=args@entry=0x1a9c10fc) at eval.c:2810
  #29 0x00fc306f in run_hook_with_args (nargs=2, args=0x1a9c10fc,
      funcall=0xfc4b10 <run_hook_wrapped_funcall>) at eval.c:2891
  #30 0x00fc332d in Frun_hook_wrapped (nargs=2, args=0x1a9c10fc) at eval.c:2825
  #31 0x010166a5 in exec_byte_code (fun=XIL(0x14efd45),
      fun@entry=XIL(0x1a25a1b5), args_template=514, nargs=2, nargs@entry=1,
      args=0x1a9c10fc, args@entry=0xbf8adc) at lisp.h:751
  #32 0x00fc86b8 in funcall_lambda (fun=XIL(0x1a25a1b5), nargs=nargs@entry=1,
      arg_vector=arg_vector@entry=0xbf8adc) at eval.c:3200
  #33 0x00fc8bda in funcall_general (fun=<optimized out>,
      numargs=numargs@entry=1, args=args@entry=0xbf8adc) at eval.c:2994
  #34 0x00fc4345 in Ffuncall (args=0xbf8ad8, nargs=2) at eval.c:3032
  #35 Ffuncall (nargs=2, args=0xbf8ad8) at eval.c:3006
  #36 0x00fc2a05 in internal_condition_case_n (
      bfun=bfun@entry=0xfc424a <Ffuncall>, nargs=nargs@entry=2,
      args=args@entry=0xbf8ad8, handlers=handlers@entry=XIL(0x18),
      hfun=hfun@entry=0xe6a268 <dsafe_eval_handler>) at eval.c:1624
  #37 0x00e50eef in dsafe__call (inhibit_quit=inhibit_quit@entry=false,
      f=0xfc424a <Ffuncall>, nargs=nargs@entry=2, args=args@entry=0xbf8ad8)
      at lisp.h:1178
  #38 0x00e50f55 in dsafe__call (args=0xbf8ad8, nargs=2, f=<optimized out>,
      inhibit_quit=false) at xdisp.c:3056
  #39 dsafe_call1 (f=f@entry=XIL(0x18c5d618), arg=arg@entry=make_fixnum(371707))
      at xdisp.c:3097
  #40 0x00e68f47 in handle_fontified_prop (it=0xbfa6d0) at xdisp.c:4616
  #41 handle_fontified_prop (it=<optimized out>) at xdisp.c:4532
  #42 0x00e6d708 in handle_stop (it=it@entry=0xbfa6d0) at xdisp.c:4136
  #43 0x00e7983e in next_element_from_buffer (it=0xbfa6d0) at xdisp.c:9643
  #44 0x00e770ab in get_next_display_element (it=it@entry=0xbfa6d0)
      at xdisp.c:8209
  #45 0x00e80d46 in display_line (it=it@entry=0xbfa6d0,
      cursor_vpos=cursor_vpos@entry=0) at xdisp.c:25295
  #46 0x00e875c1 in try_window (window=<optimized out>,
      window@entry=XIL(0xaa1c62d), pos=..., flags=<optimized out>, 
flags@entry=0)
      at xdisp.c:21136
  #47 0x00ea8505 in redisplay_window (window=window@entry=XIL(0xaa1c62d),
      just_this_one_p=just_this_one_p@entry=true) at xdisp.c:20245
  #48 0x00eacab8 in redisplay_window_1 (window=XIL(0xaa1c62d)) at xdisp.c:18023
  #49 0x00fc28bb in internal_condition_case_1 (
      bfun=bfun@entry=0xeaca80 <redisplay_window_1>, arg=XIL(0xaa1c62d),
      handlers=XIL(0x1a4410b3),
      hfun=hfun@entry=0xe56297 <redisplay_window_error>) at eval.c:1568
  #50 0x00e9124e in redisplay_internal () at xdisp.c:17512
  #51 0x00e92463 in redisplay () at xdisp.c:16562
  #52 0x00f36088 in read_char (commandflag=<optimized out>, commandflag@entry=1,
      map=<optimized out>, map@entry=XIL(0x13494483),
      prev_event=<optimized out>, used_mouse_menu=<optimized out>,
      used_mouse_menu@entry=0xbff7fb, end_time=<optimized out>,
      end_time@entry=0x0) at keyboard.c:2678
  #53 0x00f396bd in read_key_sequence (keybuf=keybuf@entry=0xbff8d8,
      prompt=prompt@entry=XIL(0),
      dont_downcase_last=dont_downcase_last@entry=false,
      can_return_switch_frame=<optimized out>,
      can_return_switch_frame@entry=true, fix_current_buffer=<optimized out>,
      fix_current_buffer@entry=true, prevent_redisplay=<optimized out>,
      prevent_redisplay@entry=false, disable_text_conversion_p=false)
      at keyboard.c:10727
  #54 0x00f3b24b in command_loop_1 () at lisp.h:1178
  #55 0x00fc281d in internal_condition_case (
      bfun=bfun@entry=0xf3b090 <command_loop_1>,
      handlers=handlers@entry=XIL(0x48), hfun=hfun@entry=0xf2e3d6 <cmd_error>)
      at eval.c:1544
  #56 0x00f246eb in command_loop_2 (handlers=XIL(0x48)) at keyboard.c:1168
  #57 0x00fc2737 in internal_catch (tag=tag@entry=XIL(0x8790),
      func=func@entry=0xf246cb <command_loop_2>, arg=arg@entry=XIL(0x48))
      at eval.c:1224
  #58 0x00f2468b in command_loop () at lisp.h:1178
  #59 0x00f2df91 in recursive_edit_1 () at keyboard.c:754
  #60 0x00f2e281 in Frecursive_edit () at keyboard.c:837
  #61 0x01167bff in main (argc=<optimized out>, argv=<optimized out>)
      at emacs.c:2626
  [New Thread 106112.0x1a944]

  Lisp Backtrace:
  [New Thread 106112.0x1956c]

  eval.c:120: Emacs fatal error: assertion failed: pdl->kind == 
SPECPDL_BACKTRACE

  Thread 1 hit Breakpoint 1, terminate_due_to_signal (sig=sig@entry=22,
      backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:442
  442     {
  The program being debugged stopped while in a function called from GDB.
  Evaluation of the expression containing the function
  (backtrace_function) will be abandoned.
  When the function is done executing, GDB will silently stop.
  (gdb)




reply via email to

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