Subject: 26.1; GDB stepping through code splits GUD windows

From: Martin Sebor <[email-masked]>
Date: Thu, 4 Jul 2019 13:55:50 -0600

Since the latest Fedora 29 update, while using the GUD many windows mode
and stepping in GDB into functions defined in other files than the
current one, Emacs will sometimes open the new file either by splitting
the current window, or sometimes in the input/output of gcc window.
Sometimes it seemingly abitrarily also resizes the windows and changes
the layout of the debugging session.  This makes debugging using GUD so
confusing that it's nearly unusable.  I end up using gdb-restore-windows
every few seconds to at least temporarily restore some sanity to the
layout.  Since the default layout isn't ideal for my use, I then have to
resize it to my preferred size only to have GUD screw it up again once I
step into a function in some other file.

In GNU Emacs 26.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.23.2)
  of 2018-08-13 built on buildvm-13.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.12004000
Recent messages:
The program being debugged exited while in a function called from GDB.
Evaluation of the expression containing the function
(tree_class_check(tree_node*, tree_code_class, char const*, int, char 
const*)) will be abandoned.
Switched to thread 1
Switched to thread nil
Switched to thread 1
Mark set
Switched to thread nil
Switched to thread 1
Mark activated

Configured using:
  'configure --build=x86_64-redhat-linux-gnu
  --host=x86_64-redhat-linux-gnu --program-prefix=
  --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
  --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
  --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
  --libexecdir=/usr/libexec --localstatedir=/var
  --sharedstatedir=/var/lib --mandir=/usr/share/man
  --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
  --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
  --with-gpm=no --with-xwidgets --with-modules
  build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
  'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
  -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
  -fstack-protector-strong -grecord-gcc-switches
  -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
  -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
  -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
  LDFLAGS=-Wl,-z,relro
  PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS XWIDGETS LCMS2

Important settings:
   value of $LANG: en_US.UTF-8
   value of $XMODIFIERS: @im=none
   locale-coding-system: utf-8-unix

Major mode: C++//l

Minor modes in effect:
   diff-auto-refine-mode: t
   gdb-many-windows: t
   global-undo-tree-mode: t
   undo-tree-mode: t
   savehist-mode: t
   show-paren-mode: t
   display-time-mode: t
   tooltip-mode: t
   global-eldoc-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   column-number-mode: t
   line-number-mode: t
   transient-mark-mode: t
   abbrev-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils misearch multi-isearch vc-git
diff-mode cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs cl-seq gdb-mi bindat json map seq
byte-opt bytecomp byte-compile cconv gud easy-mmode comint ansi-color
ring elec-pair undo-tree diff highlight-chars redspace-mode savehist-20+
desktop frameset paren time cus-start cus-load 50magit clang-format
cl-macs gv xml cl-loaddefs cl-lib time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting xwidget-internal move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 307086 22928)
  (symbols 48 26756 2)
  (miscs 40 300 1086)
  (strings 32 56058 3214)
  (string-bytes 1 1680186)
  (vectors 16 25160)
  (vector-slots 8 1001757 74114)
  (floats 8 82 316)
  (intervals 56 26702 303)
  (buffers 992 29))