* bug#31918: 25.3; gud inserts invalid gdb commands
@ 2018-06-20 19:34 Moritz Wilhelmy
2018-06-21 14:27 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Moritz Wilhelmy @ 2018-06-20 19:34 UTC (permalink / raw)
To: 31918
I'm experiencing problems attaching commands to breakpoints with
gdb/gud. I reproduced this using emacs -q. I also tried to reproduce the
same behaviour with gdb running inside the terminal, but it did not
occur, therefore I blame Emacs. ;)
After M-x gdb, I wrote approximately this (unimportant parts elided):
(gdb) br phy_device.c:579
Breakpoint 2 at 0xc029c468: file drivers/net/phy/phy_device.c, line 579.
(gdb) commands
Type commands for breakpoint(s) 2, one per line.
End with a line saying just "end".
info args
>>>>>info locals
>p/x phy_id
>p bus->id
>if addr < 31
>cont
>end
>end
(gdb) i br
2 breakpoint keep y 0xc029c468 in get_phy_device at drivers/net/phy/phy_device.c:579
breakpoint already hit 1 time
info args
41-stack-info-frame --thread 2
42-thread-info --thread 2
43-break-list
info locals
p/x phy_id
p bus->id
if addr < 31
cont
end
(gdb)
What's the deal with these three lines?
41-stack-info-frame --thread 2
42-thread-info --thread 2
43-break-list
Best,
Moritz
In GNU Emacs 25.3.1 (x86_64-suse-linux-gnu, GTK+ Version 3.22.30)
of 2018-06-10 built on lamb03
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: openSUSE Tumbleweed
Configured using:
'configure --with-pop --without-hesiod --with-kerberos --with-kerberos5
--with-xim --with-wide-int --with-file-notification=inotify
--with-modules --enable-autodepend --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
--localstatedir=/var --sharedstatedir=/var/lib --libexecdir=/usr/lib
--enable-locallisppath=/usr/share/emacs/25.3/site-lisp:/usr/share/emacs/site-lisp
--with-x --with-sound --with-xpm --with-jpeg --with-tiff --with-gif
--with-png --with-rsvg --with-dbus --with-xft --without-gpm
--with-x-toolkit=gtk3 --with-xwidgets --with-toolkit-scroll-bars
--x-includes=/usr/include --x-libraries=/usr/lib64 --with-libotf
--with-m17n-flt --build=x86_64-suse-linux 'CFLAGS=-fmessage-length=0
-grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -g -D_GNU_SOURCE
-DGDK_DISABLE_DEPRECATION_WARNINGS -DGLIB_DISABLE_DEPRECATION_WARNINGS
-pipe -Wno-pointer-sign -Wno-unused-variable -Wno-unused-label
-Wno-unprototyped-calls -fno-optimize-sibling-calls -fno-PIE
-DSYSTEM_PURESIZE_EXTRA=55000 -DSITELOAD_PURESIZE_EXTRA=10000 '
LDFLAGS=-Wl,-O2'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES XWIDGETS
Important settings:
value of $LC_COLLATE: C
value of $LC_CTYPE: en_US.UTF-8
value of $LC_NUMERIC: POSIX
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Debugger
Minor modes in effect:
diff-auto-refine-mode: t
show-paren-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: (only . t)
Recent messages:
Checking 24 files in /usr/share/emacs/25.3/lisp/cedet...
Checking 57 files in /usr/share/emacs/25.3/lisp/calendar...
Checking 87 files in /usr/share/emacs/25.3/lisp/calc...
Checking 120 files in /usr/share/emacs/25.3/lisp/obsolete...
Checking for load-path shadows...done
scroll-down-command: Beginning of buffer
scroll-up-command: End of buffer
scroll-down-command: Beginning of buffer
next-line: End of buffer [21 times]
Auto-saving...done
previous-line: Beginning of buffer [3 times]
Load-path shadows:
None found.
Features:
(pp shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils help-fns kmacro
thingatpt etags xref project eieio eieio-core cl-macs vc-git diff-mode
cc-mode cc-fonts 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 gv bytecomp
byte-compile cl-extra help-mode cconv cl-loaddefs pcase cl-lib gud
easy-mmode comint ansi-color ring misearch multi-isearch jka-compr info
easymenu paren ispell time-date mule-util delsel lpr tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev 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 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 223680 21443)
(symbols 48 25962 0)
(miscs 40 351 417)
(strings 32 47786 8262)
(string-bytes 1 2193690)
(vectors 16 22020)
(vector-slots 8 572010 11995)
(floats 8 275 338)
(intervals 56 13253 173)
(buffers 976 37))
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#31918: 25.3; gud inserts invalid gdb commands
2018-06-20 19:34 bug#31918: 25.3; gud inserts invalid gdb commands Moritz Wilhelmy
@ 2018-06-21 14:27 ` Eli Zaretskii
2018-06-23 15:05 ` Moritz Wilhelmy
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-06-21 14:27 UTC (permalink / raw)
To: Moritz Wilhelmy; +Cc: 31918
> From: Moritz Wilhelmy <mw-emacs@barfooze.de>
> Date: Wed, 20 Jun 2018 21:34:44 +0200
>
> I'm experiencing problems attaching commands to breakpoints with
> gdb/gud. I reproduced this using emacs -q. I also tried to reproduce the
> same behaviour with gdb running inside the terminal, but it did not
> occur, therefore I blame Emacs. ;)
>
> After M-x gdb, I wrote approximately this (unimportant parts elided):
>
> (gdb) br phy_device.c:579
> Breakpoint 2 at 0xc029c468: file drivers/net/phy/phy_device.c, line 579.
> (gdb) commands
> Type commands for breakpoint(s) 2, one per line.
> End with a line saying just "end".
> info args
> >>>>>info locals
> >p/x phy_id
> >p bus->id
> >if addr < 31
> >cont
> >end
> >end
> (gdb) i br
> 2 breakpoint keep y 0xc029c468 in get_phy_device at drivers/net/phy/phy_device.c:579
> breakpoint already hit 1 time
> info args
> 41-stack-info-frame --thread 2
> 42-thread-info --thread 2
> 43-break-list
> info locals
> p/x phy_id
> p bus->id
> if addr < 31
> cont
> end
> (gdb)
>
> What's the deal with these three lines?
>
> 41-stack-info-frame --thread 2
> 42-thread-info --thread 2
> 43-break-list
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 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.)
Thanks.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#31918: 25.3; gud inserts invalid gdb commands
2018-06-21 14:27 ` Eli Zaretskii
@ 2018-06-23 15:05 ` Moritz Wilhelmy
2018-06-23 15:14 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Moritz Wilhelmy @ 2018-06-23 15:05 UTC (permalink / raw)
To: 31918
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#31918: 25.3; gud inserts invalid gdb commands
2018-06-23 15:05 ` Moritz Wilhelmy
@ 2018-06-23 15:14 ` Eli Zaretskii
2018-06-23 16:13 ` Moritz Wilhelmy
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-06-23 15:14 UTC (permalink / raw)
To: Moritz Wilhelmy; +Cc: 31918
> From: Moritz Wilhelmy <mw-emacs@barfooze.de>
> Date: Sat, 23 Jun 2018 17:05:41 +0200
>
> $ 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?
GDB 7.0, AFAIK. But it's possible that some features need a newer
GDB.
If you invoke GDB from the shell with -i=mi, can you reproduce the
problem?
Also, do these commands appear in "info break" output right after you
define the breakpoint, or do you need the breakpoint to break a few
times before that happens?
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#31918: 25.3; gud inserts invalid gdb commands
2018-06-23 15:14 ` Eli Zaretskii
@ 2018-06-23 16:13 ` Moritz Wilhelmy
2018-06-23 16:31 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Moritz Wilhelmy @ 2018-06-23 16:13 UTC (permalink / raw)
To: 31918
On Sat, Jun 23 2018, Eli Zaretskii wrote:
> GDB 7.0, AFAIK. But it's possible that some features need a newer
> GDB.
I'll try this as soon as we get this kernel update out of the door.
> If you invoke GDB from the shell with -i=mi, can you reproduce the
> problem?
I did one debug session last week with manually running gdb -i=mi to
verify whether this is the case, and console gdb did not insert these
commands so my debugging session ran without problems.
I also noticed that Linux console output takes the following form on my
setup:
@"console message from the kernel"
These show up in the terminal, but not in gdb-mi inside Emacs, making
Linux debugging with gdb-mi a bit cumbersome at the moment. I think this
is the format that's described in (info "(gdb) GDB/MI Stream Records").
> Also, do these commands appear in "info break" output right after you
> define the breakpoint, or do you need the breakpoint to break a few
> times before that happens?
I'll check on Monday. I think they appeared right away but I might be
wrong.
Best regards,
Moritz
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#31918: 25.3; gud inserts invalid gdb commands
2018-06-23 16:13 ` Moritz Wilhelmy
@ 2018-06-23 16:31 ` Eli Zaretskii
2019-07-13 3:38 ` Lars Ingebrigtsen
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-06-23 16:31 UTC (permalink / raw)
To: Moritz Wilhelmy; +Cc: 31918
> From: Moritz Wilhelmy <mw-emacs@barfooze.de>
> Date: Sat, 23 Jun 2018 18:13:27 +0200
>
> I also noticed that Linux console output takes the following form on my
> setup:
> @"console message from the kernel"
> These show up in the terminal, but not in gdb-mi inside Emacs, making
> Linux debugging with gdb-mi a bit cumbersome at the moment.
Does it perhaps appear in the I/O window?
There's also an unused gdbmi-bnf-target-stream-output, maybe you could
use it for this.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#31918: 25.3; gud inserts invalid gdb commands
2018-06-23 16:31 ` Eli Zaretskii
@ 2019-07-13 3:38 ` Lars Ingebrigtsen
0 siblings, 0 replies; 7+ messages in thread
From: Lars Ingebrigtsen @ 2019-07-13 3:38 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 31918, Moritz Wilhelmy
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Moritz Wilhelmy <mw-emacs@barfooze.de>
>> Date: Sat, 23 Jun 2018 18:13:27 +0200
>>
>> I also noticed that Linux console output takes the following form on my
>> setup:
>> @"console message from the kernel"
>> These show up in the terminal, but not in gdb-mi inside Emacs, making
>> Linux debugging with gdb-mi a bit cumbersome at the moment.
>
> Does it perhaps appear in the I/O window?
>
> There's also an unused gdbmi-bnf-target-stream-output, maybe you could
> use it for this.
More information was requested a year ago, but apparently wasn't given,
so I'm closing this bug report.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-07-13 3:38 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-20 19:34 bug#31918: 25.3; gud inserts invalid gdb commands Moritz Wilhelmy
2018-06-21 14:27 ` Eli Zaretskii
2018-06-23 15:05 ` Moritz Wilhelmy
2018-06-23 15:14 ` Eli Zaretskii
2018-06-23 16:13 ` Moritz Wilhelmy
2018-06-23 16:31 ` Eli Zaretskii
2019-07-13 3:38 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).