Thank you, Eli, for providing the steps to facilitate troubleshooting this issue. The attached files may make it easier to do a diff between the gdb output for both commits. I performed the gdb tests on the stock Emacs versions on the w32 platform without making any edits by me to the underlying source code; i.e., I did not add any buffer-local variables in these tests. a68eee50eb515b28b448894299334afced26ef78 and 05d2fc7170fb66a87601b1c76ddae2c1b7b4b934 I am also posing the results in text form below just in case you prefer that instead of text files: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; a68eee50eb515b28b448894299334afced26ef78 $ gdb ./emacs.exe ... (gdb) start -Q ... (gdb) ptype /o current_buffer type = struct buffer { /* 0 | 4 */ union vectorlike_header { /* 4 */ ptrdiff_t size; /* total size (bytes): 4 */ } header; /* 4 | 4 */ Lisp_Object name_; /* 8 | 4 */ Lisp_Object filename_; /* 12 | 4 */ Lisp_Object directory_; /* 16 | 4 */ Lisp_Object backed_up_; /* 20 | 4 */ Lisp_Object save_length_; /* 24 | 4 */ Lisp_Object auto_save_file_name_; /* 28 | 4 */ Lisp_Object read_only_; /* 32 | 4 */ Lisp_Object mark_; /* 36 | 4 */ Lisp_Object local_var_alist_; /* 40 | 4 */ Lisp_Object major_mode_; /* 44 | 4 */ Lisp_Object mode_name_; /* 48 | 4 */ Lisp_Object mode_line_format_; /* 52 | 4 */ Lisp_Object header_line_format_; /* 56 | 4 */ Lisp_Object keymap_; /* 60 | 4 */ Lisp_Object abbrev_table_; /* 64 | 4 */ Lisp_Object syntax_table_; /* 68 | 4 */ Lisp_Object category_table_; /* 72 | 4 */ Lisp_Object case_fold_search_; /* 76 | 4 */ Lisp_Object tab_width_; /* 80 | 4 */ Lisp_Object fill_column_; /* 84 | 4 */ Lisp_Object left_margin_; /* 88 | 4 */ Lisp_Object auto_fill_function_; /* 92 | 4 */ Lisp_Object downcase_table_; /* 96 | 4 */ Lisp_Object upcase_table_; /* 100 | 4 */ Lisp_Object case_canon_table_; /* 104 | 4 */ Lisp_Object case_eqv_table_; /* 108 | 4 */ Lisp_Object truncate_lines_; /* 112 | 4 */ Lisp_Object word_wrap_; /* 116 | 4 */ Lisp_Object ctl_arrow_; /* 120 | 4 */ Lisp_Object bidi_display_reordering_; /* 124 | 4 */ Lisp_Object bidi_paragraph_direction_; /* 128 | 4 */ Lisp_Object bidi_paragraph_separate_re_; /* 132 | 4 */ Lisp_Object bidi_paragraph_start_re_; /* 136 | 4 */ Lisp_Object selective_display_; /* 140 | 4 */ Lisp_Object selective_display_ellipses_; /* 144 | 4 */ Lisp_Object minor_modes_; /* 148 | 4 */ Lisp_Object overwrite_mode_; /* 152 | 4 */ Lisp_Object abbrev_mode_; /* 156 | 4 */ Lisp_Object display_table_; /* 160 | 4 */ Lisp_Object mark_active_; /* 164 | 4 */ Lisp_Object enable_multibyte_characters_; /* 168 | 4 */ Lisp_Object buffer_file_coding_system_; /* 172 | 4 */ Lisp_Object file_format_; /* 176 | 4 */ Lisp_Object auto_save_file_format_; /* 180 | 4 */ Lisp_Object cache_long_scans_; /* 184 | 4 */ Lisp_Object width_table_; /* 188 | 4 */ Lisp_Object pt_marker_; /* 192 | 4 */ Lisp_Object begv_marker_; /* 196 | 4 */ Lisp_Object zv_marker_; /* 200 | 4 */ Lisp_Object point_before_scroll_; /* 204 | 4 */ Lisp_Object file_truename_; /* 208 | 4 */ Lisp_Object invisibility_spec_; /* 212 | 4 */ Lisp_Object last_selected_window_; /* 216 | 4 */ Lisp_Object display_count_; /* 220 | 4 */ Lisp_Object left_margin_cols_; /* 224 | 4 */ Lisp_Object right_margin_cols_; /* 228 | 4 */ Lisp_Object left_fringe_width_; /* 232 | 4 */ Lisp_Object right_fringe_width_; /* 236 | 4 */ Lisp_Object fringes_outside_margins_; /* 240 | 4 */ Lisp_Object scroll_bar_width_; /* 244 | 4 */ Lisp_Object scroll_bar_height_; /* 248 | 4 */ Lisp_Object vertical_scroll_bar_type_; /* 252 | 4 */ Lisp_Object horizontal_scroll_bar_type_; /* 256 | 4 */ Lisp_Object indicate_empty_lines_; /* 260 | 4 */ Lisp_Object indicate_buffer_boundaries_; /* 264 | 4 */ Lisp_Object fringe_indicator_alist_; ---Type to continue, or q to quit--- /* 268 | 4 */ Lisp_Object fringe_cursor_alist_; /* 272 | 4 */ Lisp_Object display_time_; /* 276 | 4 */ Lisp_Object scroll_up_aggressively_; /* 280 | 4 */ Lisp_Object scroll_down_aggressively_; /* 284 | 4 */ Lisp_Object cursor_type_; /* 288 | 4 */ Lisp_Object extra_line_spacing_; /* 292 | 4 */ Lisp_Object cursor_in_non_selected_windows_; /* 296 | 72 */ struct buffer_text { /* 296 | 4 */ unsigned char *beg; /* 300 | 4 */ ptrdiff_t gpt; /* 304 | 4 */ ptrdiff_t z; /* 308 | 4 */ ptrdiff_t gpt_byte; /* 312 | 4 */ ptrdiff_t z_byte; /* 316 | 4 */ ptrdiff_t gap_size; /* 320 | 4 */ EMACS_INT modiff; /* 324 | 4 */ EMACS_INT chars_modiff; /* 328 | 4 */ EMACS_INT save_modiff; /* 332 | 4 */ EMACS_INT overlay_modiff; /* 336 | 4 */ EMACS_INT compact; /* 340 | 4 */ ptrdiff_t beg_unchanged; /* 344 | 4 */ ptrdiff_t end_unchanged; /* 348 | 4 */ EMACS_INT unchanged_modified; /* 352 | 4 */ EMACS_INT overlay_unchanged_modified; /* 356 | 4 */ INTERVAL intervals; /* 360 | 4 */ struct Lisp_Marker *markers; /* 364:31 | 4 */ bool_bf inhibit_shrinking : 1; /* 364:30 | 4 */ bool_bf redisplay : 1; /* total size (bytes): 72 */ } own_text; /* 368 | 4 */ struct buffer_text *text; /* 372 | 4 */ struct buffer *next; /* 376 | 4 */ ptrdiff_t pt; /* 380 | 4 */ ptrdiff_t pt_byte; /* 384 | 4 */ ptrdiff_t begv; /* 388 | 4 */ ptrdiff_t begv_byte; /* 392 | 4 */ ptrdiff_t zv; /* 396 | 4 */ ptrdiff_t zv_byte; /* 400 | 4 */ struct buffer *base_buffer; /* 404 | 4 */ int indirections; /* 408 | 4 */ int window_count; /* 412 | 50 */ char local_flags[50]; /* XXX 2-byte hole */ /* 464 | 16 */ struct timespec { /* 464 | 8 */ union { /* 4 */ time_t tv_sec; /* 4 */ __time32_t __tv32_sec; /* 8 */ __time64_t __tv64_sec; /* total size (bytes): 8 */ }; /* 472 | 4 */ long tv_nsec; /* total size (bytes): 16 */ } modtime; /* 480 | 4 */ off_t modtime_size; /* 484 | 4 */ EMACS_INT auto_save_modified; /* 488 | 4 */ EMACS_INT display_error_modiff; /* 492 | 4 */ time_t auto_save_failure_time; /* 496 | 4 */ ptrdiff_t last_window_start; /* 500 | 4 */ struct region_cache *newline_cache; /* 504 | 4 */ struct region_cache *width_run_cache; /* 508 | 4 */ struct region_cache *bidi_paragraph_cache; /* 512:31 | 4 */ bool_bf prevent_redisplay_optimizations_p : 1; /* 512:30 | 4 */ bool_bf clip_changed : 1; /* XXX 6-bit hole */ /* XXX 3-byte hole */ /* 516 | 4 */ struct Lisp_Overlay *overlays_before; /* 520 | 4 */ struct Lisp_Overlay *overlays_after; /* 524 | 4 */ ptrdiff_t overlay_center; /* 528 | 4 */ Lisp_Object undo_list_; ---Type to continue, or q to quit--- /* total size (bytes): 536 */ } * (gdb) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 05d2fc7170fb66a87601b1c76ddae2c1b7b4b934 $ gdb ./emacs.exe ... (gdb) start -Q ... (gdb) ptype /o current_buffer type = struct buffer { /* 0 | 4 */ union vectorlike_header { /* 4 */ ptrdiff_t size; /* total size (bytes): 4 */ } header; /* 4 | 4 */ Lisp_Object name_; /* 8 | 4 */ Lisp_Object filename_; /* 12 | 4 */ Lisp_Object directory_; /* 16 | 4 */ Lisp_Object backed_up_; /* 20 | 4 */ Lisp_Object save_length_; /* 24 | 4 */ Lisp_Object auto_save_file_name_; /* 28 | 4 */ Lisp_Object read_only_; /* 32 | 4 */ Lisp_Object mark_; /* 36 | 4 */ Lisp_Object local_var_alist_; /* 40 | 4 */ Lisp_Object major_mode_; /* 44 | 4 */ Lisp_Object mode_name_; /* 48 | 4 */ Lisp_Object mode_line_format_; /* 52 | 4 */ Lisp_Object header_line_format_; /* 56 | 4 */ Lisp_Object keymap_; /* 60 | 4 */ Lisp_Object abbrev_table_; /* 64 | 4 */ Lisp_Object syntax_table_; /* 68 | 4 */ Lisp_Object category_table_; /* 72 | 4 */ Lisp_Object case_fold_search_; /* 76 | 4 */ Lisp_Object tab_width_; /* 80 | 4 */ Lisp_Object fill_column_; /* 84 | 4 */ Lisp_Object left_margin_; /* 88 | 4 */ Lisp_Object auto_fill_function_; /* 92 | 4 */ Lisp_Object downcase_table_; /* 96 | 4 */ Lisp_Object upcase_table_; /* 100 | 4 */ Lisp_Object case_canon_table_; /* 104 | 4 */ Lisp_Object case_eqv_table_; /* 108 | 4 */ Lisp_Object truncate_lines_; /* 112 | 4 */ Lisp_Object word_wrap_; /* 116 | 4 */ Lisp_Object ctl_arrow_; /* 120 | 4 */ Lisp_Object bidi_display_reordering_; /* 124 | 4 */ Lisp_Object bidi_paragraph_direction_; /* 128 | 4 */ Lisp_Object bidi_paragraph_separate_re_; /* 132 | 4 */ Lisp_Object bidi_paragraph_start_re_; /* 136 | 4 */ Lisp_Object selective_display_; /* 140 | 4 */ Lisp_Object selective_display_ellipses_; /* 144 | 4 */ Lisp_Object minor_modes_; /* 148 | 4 */ Lisp_Object overwrite_mode_; /* 152 | 4 */ Lisp_Object abbrev_mode_; /* 156 | 4 */ Lisp_Object display_table_; /* 160 | 4 */ Lisp_Object mark_active_; /* 164 | 4 */ Lisp_Object enable_multibyte_characters_; /* 168 | 4 */ Lisp_Object buffer_file_coding_system_; /* 172 | 4 */ Lisp_Object file_format_; /* 176 | 4 */ Lisp_Object auto_save_file_format_; /* 180 | 4 */ Lisp_Object cache_long_scans_; /* 184 | 4 */ Lisp_Object width_table_; /* 188 | 4 */ Lisp_Object pt_marker_; /* 192 | 4 */ Lisp_Object begv_marker_; /* 196 | 4 */ Lisp_Object zv_marker_; /* 200 | 4 */ Lisp_Object point_before_scroll_; /* 204 | 4 */ Lisp_Object file_truename_; /* 208 | 4 */ Lisp_Object invisibility_spec_; /* 212 | 4 */ Lisp_Object last_selected_window_; /* 216 | 4 */ Lisp_Object display_count_; /* 220 | 4 */ Lisp_Object left_margin_cols_; /* 224 | 4 */ Lisp_Object right_margin_cols_; /* 228 | 4 */ Lisp_Object left_fringe_width_; /* 232 | 4 */ Lisp_Object right_fringe_width_; /* 236 | 4 */ Lisp_Object fringes_outside_margins_; /* 240 | 4 */ Lisp_Object scroll_bar_width_; /* 244 | 4 */ Lisp_Object scroll_bar_height_; /* 248 | 4 */ Lisp_Object vertical_scroll_bar_type_; /* 252 | 4 */ Lisp_Object horizontal_scroll_bar_type_; /* 256 | 4 */ Lisp_Object indicate_empty_lines_; /* 260 | 4 */ Lisp_Object indicate_buffer_boundaries_; /* 264 | 4 */ Lisp_Object fringe_indicator_alist_; ---Type to continue, or q to quit--- /* 268 | 4 */ Lisp_Object fringe_cursor_alist_; /* 272 | 4 */ Lisp_Object display_time_; /* 276 | 4 */ Lisp_Object scroll_up_aggressively_; /* 280 | 4 */ Lisp_Object scroll_down_aggressively_; /* 284 | 4 */ Lisp_Object cursor_type_; /* 288 | 4 */ Lisp_Object extra_line_spacing_; /* 292 | 4 */ Lisp_Object cursor_in_non_selected_windows_; /* 296 | 104 */ struct buffer_text { /* 296 | 4 */ unsigned char *beg; /* 300 | 4 */ ptrdiff_t gpt; /* 304 | 4 */ ptrdiff_t z; /* 308 | 4 */ ptrdiff_t gpt_byte; /* 312 | 4 */ ptrdiff_t z_byte; /* 316 | 4 */ ptrdiff_t gap_size; /* 320 | 8 */ modiff_count modiff; /* 328 | 8 */ modiff_count chars_modiff; /* 336 | 8 */ modiff_count save_modiff; /* 344 | 8 */ modiff_count overlay_modiff; /* 352 | 8 */ modiff_count compact; /* 360 | 4 */ ptrdiff_t beg_unchanged; /* 364 | 4 */ ptrdiff_t end_unchanged; /* 368 | 8 */ modiff_count unchanged_modified; /* 376 | 8 */ modiff_count overlay_unchanged_modified; /* 384 | 4 */ INTERVAL intervals; /* 388 | 4 */ struct Lisp_Marker *markers; /* 392:31 | 4 */ bool_bf inhibit_shrinking : 1; /* 392:30 | 4 */ bool_bf redisplay : 1; /* total size (bytes): 104 */ } own_text; /* 400 | 4 */ struct buffer_text *text; /* 404 | 4 */ struct buffer *next; /* 408 | 4 */ ptrdiff_t pt; /* 412 | 4 */ ptrdiff_t pt_byte; /* 416 | 4 */ ptrdiff_t begv; /* 420 | 4 */ ptrdiff_t begv_byte; /* 424 | 4 */ ptrdiff_t zv; /* 428 | 4 */ ptrdiff_t zv_byte; /* 432 | 4 */ struct buffer *base_buffer; /* 436 | 4 */ int indirections; /* 440 | 4 */ int window_count; /* 444 | 50 */ char local_flags[50]; /* XXX 2-byte hole */ /* 496 | 16 */ struct timespec { /* 496 | 8 */ union { /* 4 */ time_t tv_sec; /* 4 */ __time32_t __tv32_sec; /* 8 */ __time64_t __tv64_sec; /* total size (bytes): 8 */ }; /* 504 | 4 */ long tv_nsec; /* total size (bytes): 16 */ } modtime; /* 512 | 4 */ off_t modtime_size; /* XXX 4-byte hole */ /* 520 | 8 */ modiff_count auto_save_modified; /* 528 | 8 */ modiff_count display_error_modiff; /* 536 | 4 */ time_t auto_save_failure_time; /* 540 | 4 */ ptrdiff_t last_window_start; /* 544 | 4 */ struct region_cache *newline_cache; /* 548 | 4 */ struct region_cache *width_run_cache; /* 552 | 4 */ struct region_cache *bidi_paragraph_cache; /* 556:31 | 4 */ bool_bf prevent_redisplay_optimizations_p : 1; /* 556:30 | 4 */ bool_bf clip_changed : 1; /* XXX 6-bit hole */ /* XXX 3-byte hole */ /* 560 | 4 */ struct Lisp_Overlay *overlays_before; /* 564 | 4 */ struct Lisp_Overlay *overlays_after; /* 568 | 4 */ ptrdiff_t overlay_center; /* 572 | 4 */ Lisp_Object undo_list_; ---Type to continue, or q to quit--- /* total size (bytes): 576 */ } * (gdb) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > Date: [04-07-2019 08:48:21] <07 Apr 2019 18:48:21 +0300> > From: Eli Zaretskii > To: Keith David Bershatsky > CC: emacs-devel@gnu.org,monnier@iro.umontreal.ca,schwab@linux-m68k.org,acm@muc.de,dancol@dancol.org,eggert@cs.ucla.edu > Subject: Re: buffer.c/buffer.h: How to add new buffer-local variables? > > > Date: Sat, 06 Apr 2019 19:50:14 -0700 > > From: Keith David Bershatsky > > Cc: emacs-devel@gnu.org,Stefan Monnier ,Andreas Schwab ,Alan Mackenzie ,Daniel Colascione ,Paul Eggert > > > > Using an unsophisticated method of going back in time and building various versions of Emacs on the w32 platform, I tracked down the inability to add a few new buffer-local variables in buffer.c/buffer.h to a commit that occurred on 01/31/2019: 05d2fc7170fb66a87601b1c76ddae2c1b7b4b934. > > Is your GDB version 8.1 or later? If so, please do this: > > $ cd /path/to/emacs/src > $ gdb ./emacs.exe > ... > (gdb) start -Q > ... > (gdb) ptype /o current_buffer > > and post here the result. Please do this both in the build before and > after the above commit, and let us see both results.