Subject: Re: bug#29548: 25.2; How to DEBUG get-device-terminal

From: Live System User <[email-masked]>
Date: Wed, 06 Dec 2017 19:25:01 -0500

Noam Postavsky <[email-masked]> writes:

> On Wed, Dec 6, 2017 at 1:49 PM, Live System User <[email-masked]> wrote:
>
>> Lisp Backtrace:
>> "signal" (0x5e974a98)
>> "error" (0x5e974c48)
>> "get-device-terminal" (0x5e974e08)
>> "frames-on-display-list" (0x5e974fc0)
>> 0x8a6a38 PVEC_COMPILED
>> "mapcar" (0x5e9753a8)
>> "internal--before-save-selected-window" (0x5e9755b0)
>
> So this function is getting the terminal list by calling
> list-terminals. Try printing them out in gdb, by entering the
> following:
>
> define print_terminal_list
> set $t = terminal_list
> while $t
> print *$t
> set $t = $t->next_terminal
> end
> end
> print_terminal_list
>
> The gdb command window should like this when you do that
>
> (gdb) define print_terminal_list
> Type commands for definition of "print_terminal_list".
> End with a line saying just "end".
>>set $t = terminal_list
>>while $t
>  >print *$t
>  >set $t = $t->next_terminal
>  >end
>>end
> (gdb) print_terminal_list
> $7 = {
> ...[printout of terminals follows]

(gdb) define print_terminal_list
Type commands for definition of "print_terminal_list".
End with a line saying just "end".
>set $t = terminal_list
>while $t
 >print *$t
 >set $t = $t->next_terminal
 >end
>end
(gdb) print_terminal_list
$1 = {
  header = {
    size = 4611686018561773572
  }, 
  param_alist = XIL(0x2bfe553), 
  charset_list = XIL(0x102ec33), 
  Vselection_alist = XIL(0), 
  glyph_code_table = XIL(0), 
  next_terminal = 0x363e3d8, 
  id = 5, 
  reference_count = 0, 
  type = output_termcap, 
  name = 0x0, 
  kboard = 0x4c584e0, 
  image_cache = 0x0, 
  display_info = {
    tty = 0x4160c10, 
    x = 0x4160c10, 
    w32 = 0x4160c10, 
    ns = 0x4160c10
  }, 
  terminal_coding = 0x572a020, 
  keyboard_coding = 0x8594d30, 
---Type <return> to continue, or q <return> to quit---
  rif = 0x0, 
  cursor_to_hook = 0x4b3aa0 <tty_cursor_to>, 
  raw_cursor_to_hook = 0x4b39f0 <tty_raw_cursor_to>, 
  clear_to_end_hook = 0x4b1160 <tty_clear_to_end>, 
  clear_frame_hook = 0x4b1ce0 <tty_clear_frame>, 
  clear_end_of_line_hook = 0x4b38b0 <tty_clear_end_of_line>, 
  ins_del_lines_hook = 0x4b0e50 <tty_ins_del_lines>, 
  insert_glyphs_hook = 0x4b4820 <tty_insert_glyphs>, 
  write_glyphs_hook = 0x4b4500 <tty_write_glyphs>, 
  delete_glyphs_hook = 0x4b3720 <tty_delete_glyphs>, 
  ring_bell_hook = 0x4b0bb0 <tty_ring_bell>, 
  toggle_invisible_pointer_hook = 0x0, 
  reset_terminal_modes_hook = 0x4b3600 <tty_reset_terminal_modes>, 
  set_terminal_modes_hook = 0x4b0d00 <tty_set_terminal_modes>, 
  update_begin_hook = 0x0, 
  update_end_hook = 0x4b35a0 <tty_update_end>, 
  set_terminal_window_hook = 0x4b0790 <tty_set_terminal_window>, 
  mouse_position_hook = 0x0, 
  frame_rehighlight_hook = 0x0, 
  frame_raise_lower_hook = 0x0, 
  fullscreen_hook = 0x0, 
  menu_show_hook = 0x4b2ab0 <tty_menu_show>, 
  popup_dialog_hook = 0x0, 
---Type <return> to continue, or q <return> to quit---
  set_vertical_scroll_bar_hook = 0x0, 
  set_horizontal_scroll_bar_hook = 0x0, 
  condemn_scroll_bars_hook = 0x0, 
  redeem_scroll_bar_hook = 0x0, 
  judge_scroll_bars_hook = 0x0, 
  read_socket_hook = 0x4f8cf0 <tty_read_avail_input>, 
  frame_up_to_date_hook = 0x0, 
  delete_frame_hook = 0x4b0130 <tty_free_frame_resources>, 
  delete_terminal_hook = 0x4aff70 <delete_tty>
}
$2 = {
  header = {
    size = 4611686018561773572
  }, 
  param_alist = XIL(0x3635c03), 
  charset_list = XIL(0), 
  Vselection_alist = XIL(0), 
  glyph_code_table = XIL(0), 
  next_terminal = 0xc2b460, 
  id = 4, 
  reference_count = 2, 
  type = output_x_window, 
  name = 0x3b51a70 ":0", 
---Type <return> to continue, or q <return> to quit---
  kboard = 0x3e374f0, 
  image_cache = 0x435b910, 
  display_info = {
    tty = 0x3a31c00, 
    x = 0x3a31c00, 
    w32 = 0x3a31c00, 
    ns = 0x3a31c00
  }, 
  terminal_coding = 0x3f2f200, 
  keyboard_coding = 0x446f800, 
  rif = 0x85a520 <x_redisplay_interface>, 
  cursor_to_hook = 0x0, 
  raw_cursor_to_hook = 0x0, 
  clear_to_end_hook = 0x0, 
  clear_frame_hook = 0x4c2500 <x_clear_frame>, 
  clear_end_of_line_hook = 0x0, 
  ins_del_lines_hook = 0x4c0cb0 <x_ins_del_lines>, 
  insert_glyphs_hook = 0x0, 
  write_glyphs_hook = 0x0, 
  delete_glyphs_hook = 0x4c0ca0 <x_delete_glyphs>, 
  ring_bell_hook = 0x4c4810 <XTring_bell>, 
  toggle_invisible_pointer_hook = 0x4c0680 <XTtoggle_invisible_pointer>, 
  reset_terminal_modes_hook = 0x0, 
---Type <return> to continue, or q <return> to quit---
  set_terminal_modes_hook = 0x0, 
  update_begin_hook = 0x4c05c0 <x_update_begin>, 
  update_end_hook = 0x4c05d0 <x_update_end>, 
  set_terminal_window_hook = 0x0, 
  mouse_position_hook = 0x4c8f90 <XTmouse_position>, 
  frame_rehighlight_hook = 0x4c9f20 <XTframe_rehighlight>, 
  frame_raise_lower_hook = 0x4c4630 <XTframe_raise_lower>, 
  fullscreen_hook = 0x4ccfe0 <XTfullscreen_hook>, 
  menu_show_hook = 0x46dd20 <x_menu_show>, 
  popup_dialog_hook = 0x46e680 <xw_popup_dialog>, 
  set_vertical_scroll_bar_hook = 0x4c1f60 <XTset_vertical_scroll_bar>, 
  set_horizontal_scroll_bar_hook = 0x4c19d0 <XTset_horizontal_scroll_bar>, 
  condemn_scroll_bars_hook = 0x4c0630 <XTcondemn_scroll_bars>, 
  redeem_scroll_bar_hook = 0x4c0ab0 <XTredeem_scroll_bar>, 
  judge_scroll_bars_hook = 0x4c15f0 <XTjudge_scroll_bars>, 
  read_socket_hook = 0x4c2380 <XTread_socket>, 
  frame_up_to_date_hook = 0x4c4650 <XTframe_up_to_date>, 
  delete_frame_hook = 0x4ce160 <x_destroy_window>, 
  delete_terminal_hook = 0x4c5ea0 <x_delete_terminal>
}
$3 = {
  header = {
    size = 4611686018561773572
---Type <return> to continue, or q <return> to quit---
  }, 
  param_alist = XIL(0x13a3aa3), 
  charset_list = XIL(0x102ec33), 
  Vselection_alist = XIL(0), 
  glyph_code_table = XIL(0), 
  next_terminal = 0x0, 
  id = 0, 
  reference_count = 1, 
  type = output_initial, 
  name = 0xbf45e0 "initial_terminal", 
  kboard = 0xc26e30, 
  image_cache = 0x0, 
  display_info = {
    tty = 0x0, 
    x = 0x0, 
    w32 = 0x0, 
    ns = 0x0
  }, 
  terminal_coding = 0xc2dbf0, 
  keyboard_coding = 0xc2d980, 
  rif = 0x0, 
  cursor_to_hook = 0x0, 
  raw_cursor_to_hook = 0x0, 
---Type <return> to continue, or q <return> to quit---
  clear_to_end_hook = 0x0, 
  clear_frame_hook = 0x0, 
  clear_end_of_line_hook = 0x0, 
  ins_del_lines_hook = 0x0, 
  insert_glyphs_hook = 0x0, 
  write_glyphs_hook = 0x0, 
  delete_glyphs_hook = 0x0, 
  ring_bell_hook = 0x0, 
  toggle_invisible_pointer_hook = 0x0, 
  reset_terminal_modes_hook = 0x0, 
  set_terminal_modes_hook = 0x0, 
  update_begin_hook = 0x0, 
  update_end_hook = 0x0, 
  set_terminal_window_hook = 0x0, 
  mouse_position_hook = 0x0, 
  frame_rehighlight_hook = 0x0, 
  frame_raise_lower_hook = 0x0, 
  fullscreen_hook = 0x0, 
  menu_show_hook = 0x0, 
  popup_dialog_hook = 0x0, 
  set_vertical_scroll_bar_hook = 0x0, 
  set_horizontal_scroll_bar_hook = 0x0, 
  condemn_scroll_bars_hook = 0x0, 
---Type <return> to continue, or q <return> to quit---
  redeem_scroll_bar_hook = 0x0, 
  judge_scroll_bars_hook = 0x0, 
  read_socket_hook = 0x0, 
  frame_up_to_date_hook = 0x0, 
  delete_frame_hook = 0x4b6ea0 <initial_free_frame_resources>, 
  delete_terminal_hook = 0x4b7690 <delete_initial_terminal>
}
(gdb)