Subject: bug#31918: 25.3; gud inserts invalid gdb commands

From: Moritz Wilhelmy <[email-masked]>
Date: Sat, 23 Jun 2018 17:05:41 +0200

Hi Eli,

On Thu, Jun 21 2018, Eli Zaretskii wrote:
> I tried to reproduce this, but couldn't.  Please tell what is your GDB
> version.  Also, can you provide a complete recipe, including a program
> to debug, and all the steps needed to reproduce the issue, preferably
> starting from "emacs -Q"?

The program I'm debugging is a Linux kernel on an ARM SoC over a serial
link. We're using an older version of buildroot to build everything
(planning to switch to something newer, which would also bring a newer
gdb version), but for now we're stuck with this:

$ cat bin/kernelgdb
#!/bin/sh
BR=~/src/buildroot
exec ${BR}/output/host/usr/bin/arm-buildroot-linux-musleabi-gdb ${BR}/output/images/vmlinux -b 115200 -ex "target remote localhost:4441" "$@"

With agent-proxy running on localhost 4440^4441.

$ exec ${BR}/output/host/usr/bin/arm-buildroot-linux-musleabi-gdb
GNU gdb (GDB) 7.10.1
Copyright (C) 2015 Free Software Foundation, Inc.
...
This GDB was configured as "--host=x86_64-pc-linux-gnu --target=arm-buildroot-linux-musleabi".
...
(gdb) show configuration
This GDB was configured as follows:
   configure --host=x86_64-pc-linux-gnu --target=arm-buildroot-linux-musleabi
             --with-auto-load-dir=$debugdir:$datadir/auto-load
             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
             --with-expat
             --with-gdb-datadir=/home/mw/src/FAME/miro-service.buildroot/output/host/usr/share/gdb (relocatable)
             --with-jit-reader-dir=/home/mw/src/FAME/miro-service.buildroot/output/host/usr/lib/gdb (relocatable)
             --without-libunwind-ia64
             --with-lzma
             --without-guile
             --with-separate-debug-dir=/home/mw/src/FAME/miro-service.buildroot/output/host/usr/lib/debug (relocatable)
             --without-babeltrace

("Relocatable" means the directory can be moved with the GDB installation
tree, and GDB will still find it.)
(gdb)

Is there a minimum required gdb version for gdb-mi to work correctly?

> (The additional commands are commands injected by gdb-mi.el to allow
> Emacs display of various information: call-stack, thread information,
> etc.  But they shouldn't appear in the commands you specified for your
> breakpoints, so this is still some kind of problem.  I cannot
> reproduce it, though.)

For now, I've switched back to gud-gdb without MI, which seems to work
better on my setup but I'm somewhat invested in the future of gdb/gud
and I think MI is a step in the right direction, so please let me know
if you need any more information.

Best regards,

Moritz