Debug view receives verbose GDB messages

Kevin Funk kfunk at kde.org
Tue Jul 26 19:26:29 UTC 2016


On Tuesday, July 26, 2016 7:17:15 PM CEST Aetf wrote:
> The debugger console stream contains not only general debugger output, but
> also some output generated by commands issued internally by kdevelop.
> That's why Jeremy seeing the help text and signal table when using 4.x
> version.
> 
> Though it's not hard to restore the behavior without break the
> applicationOutput signal again, if the only reason for getting console
> stream to Debug view is to get why program stopped, I think there should be
> a better way than this. As gdb actually reports the stop reason via MI
> protocol (*stopped,reason="..."), we could use that info to give a more
> readable output in Debug view, rather than dump all console stream into
> Debug view, which is meant to be application output.

I'm fine with this approach, could you work on that maybe? 

Cheers,
Kevin

> Cheers,
> Peifeng Yu
> 
> On Tue, Jul 26, 2016 at 2:58 PM Kevin Funk <kfunk at kde.org> wrote:
> > On Tuesday, July 26, 2016 4:05:51 PM CEST Aetf wrote:
> > > Hi,
> > > 
> > > In fact I know this issue. It's because debugger console stream was
> > > redirected to application output in commit 609bacd7 (by Kevin XD), so I
> > > tried to keep the same behavior when cleaning up. Apparently there's
> > > something I missed.
> > > 
> > > We should rethink what kind of outputs we want to show in Debug view.
> > > 
> > > Currently, the outputs are routed like:
> > >    1. - Application output             -> debugger target stream  ->
> > >    applicationOutput signal      -> Debug View
> > >    2. - Internal command line                                     ->
> > >    internalCommandOutput signal  -> Debug View, GDB Console
> > >    3. - Internal command output part 1 -> debugger console stream ->
> > >    internalCommandOutput signal  -> Debug View, GDB Console
> > >    4. - Internal command output part 2 -> debugger result record  ->
> > >    internalCommandOutput signal  -> Debug View, GDB Console
> > >    5. - User command line                                         ->
> > >    userCommandOutput signal      -> GDB Console
> > >    6. - User command output            -> debugger console stream ->
> > >    userCommandOutput signal      -> GDB Console
> > >    7. - Debugger internal log          -> debugger log stream     ->
> > >    debuggerInternalOutput signal -> GDB Console
> > > 
> > > Previous behavior was:
> > >    1. - Application output             -> debugger target stream  ->
> > >    applicationOutput signal      -> Debug View
> > >    2. - Internal command line                                     ->
> > >    internalCommandOutput signal  -> GDB Console
> > >    3. - Internal command output part 1 -> debugger console stream ->
> > >    applicationOutput signal      -> Debug View
> > >    4. - Internal command output part 2 -> debugger result record  ->
> > >    internalCommandOutput signal  -> GDB Console
> > >    5. - User command line                                         ->
> > >    userCommandOutput signal      -> GDB Console
> > >    6. - User command output            -> debugger console stream ->
> > >    userCommandOutput signal      -> GDB Console
> > >    7. - Debugger internal log          -> debugger log stream     ->
> > >    debuggerInternalOutput signal -> GDB Console
> > > 
> > > In my opinion, we really should only have application output routed to
> > 
> > the
> > 
> > > Debug view. What do you think?
> > 
> > If you look at my commit message in 609bacd7:
> > 
> > commit 609bacd7f1a94a1aae9518718b5b175ece67141c
> > Author: Kevin Funk <kfunk at kde.org>
> > Date:   Fri Jan 15 01:46:15 2016 +0100
> > 
> >     GDB: Merge console stream into Debug View
> >     
> >     So you get crucial information during debugging, for example:
> >     
> >     [Thread debugging using libthread_db enabled]
> >     Using host libthread_db library
> >     "/lib/x86_64-linux-gnu/libthread_db.so.1".
> >     [New Thread 0x7ffff6f4f700 (LWP 19219)]
> >     Program received signal
> >     SIGABRT, Aborted.
> >     0x00007ffff6f85267 in __GI_raise (sig=sig at entry=6) at
> >     ../sysdeps/unix/sysv/linux/raise.c:55
> > 
> > => There needs to some way to see whether the program stopped, and why.
> > 
> > I think the behavior in 609bacd7 was fine, both the application out +
> > general
> > debugger information was printed in the Debug view. We definitely don't
> > want
> > to see the GDB MI communication, though.
> > 
> > Can't we get this behavior back?
> > 
> > Unfortunately I'm not really on top of what you changed; I'd need to dig
> > through your changes.
> > 
> > Cheers,
> > Kevin
> > 
> > > Cheers,
> > > 
> > > Peifeng Yu
> > > 
> > > On Tue, Jul 26, 2016, 03:12 Jeremy Murphy <
> > 
> > jeremy.william.murphy at gmail.com>
> > 
> > > wrote:
> > > > I just reverted to 4.90.91 and the output is quite different. I've
> > > > completely abbreviated the actual program output and some verbose
> > > > templates
> > > > in the line where it hits a breakpoint:
> > > > 
> > > > 
> > > > GNU gdb (Gentoo 7.11.1 vanilla) 7.11.1
> > > > Copyright (C) 2016 Free Software Foundation, Inc.
> > > > License GPLv3+: GNU GPL version 3 or later <
> > > > http://gnu.org/licenses/gpl.html>
> > > > This is free software: you are free to change and redistribute it.
> > > > There is NO WARRANTY, to the extent permitted by law.  Type "show
> > 
> > copying"
> > 
> > > > and "show warranty" for details.
> > > > This GDB was configured as "x86_64-pc-linux-gnu".
> > > > Type "show configuration" for configuration details.
> > > > For bug reporting instructions, please see:
> > > > <https://bugs.gentoo.org/>.
> > > > Find the GDB manual and other documentation resources online at:
> > > > <http://www.gnu.org/software/gdb/documentation/>.
> > > > For help, type "help".
> > > > Type "apropos word" to search for commands related to "word".
> > > > Signal        Stop Print Pass to program Description
> > > > SIG32         No No Yes Real-time event 32
> > > > Signal        Stop Print Pass to program Description
> > > > SIG41         No No Yes Real-time event 41
> > > > Signal        Stop Print Pass to program Description
> > > > SIG42         No No Yes Real-time event 42
> > > > Signal        Stop Print Pass to program Description
> > > > SIG43         No No Yes Real-time event 43
> > > > [Thread debugging using libthread_db enabled]
> > > > Using host libthread_db library "/lib64/libthread_db.so.1".
> > > > 
> > > > ---- my program output ---
> > > > 
> > > > Breakpoint 1, footprinter::create_split_segments<...templates,
> > 
> > templates,
> > 
> > > > templates...>../footprinter.hpp:146
> > > > 146    vector<segment_data<double>> segments;
> > > > 
> > > > 
> > > > Cheers.
> > > > 
> > > > Jeremy
> > > > 
> > > > 
> > > > On 26 July 2016 at 16:02, Jeremy Murphy <
> > 
> > jeremy.william.murphy at gmail.com>
> > 
> > > > wrote:
> > > >> Hi everyone,
> > > >> 
> > > >> I'm loving KDevelop 5.0 alpha/beta/gamma whatever it is up to.  :)
> > > >> 
> > > >> Except recently, it started sending verbose GDB output to the Debug
> > 
> > view
> > 
> > > >> (along with the actual program output that I would expect) like so:
> > > >> 
> > > >> 
> > > >> (gdb) 1-gdb-show version
> > > >> GNU gdb (Gentoo 7.11.1 vanilla) 7.11.1
> > > >> Copyright (C) 2016 Free Software Foundation, Inc.
> > > >> License GPLv3+: GNU GPL version 3 or later <
> > > >> http://gnu.org/licenses/gpl.html>
> > > >> This is free software: you are free to change and redistribute it.
> > > >> There is NO WARRANTY, to the extent permitted by law.  Type "show
> > > >> copying"
> > > >> and "show warranty" for details.
> > > >> This GDB was configured as "x86_64-pc-linux-gnu".
> > > >> Type "show configuration" for configuration details.
> > > >> For bug reporting instructions, please see:
> > > >> <https://bugs.gentoo.org/>.
> > > >> Find the GDB manual and other documentation resources online at:
> > > >> <http://www.gnu.org/software/gdb/documentation/>.
> > > >> For help, type "help".
> > > >> Type "apropos word" to search for commands related to "word".
> > > >> 1^done
> > > >> (gdb) 2-gdb-set width 0
> > > >> 2^done
> > > >> 
> > > >> ---8<--- ~200 lines of output ---8<---
> > > >> 
> > > >> (gdb) 129-var-create --thread 1 --frame 0 var113 @ "typename"
> > > >> 129^error,msg="-var-create: unable to create variable object"
> > > >> (gdb) 130-var-create --thread 1 --frame 0 var114 @ "back_inserter"
> > > >> 130^error,msg="-var-create: unable to create variable object"
> > > >> 
> > > >> 
> > > >> It sends the messages when I run debug, obviously, but also when I
> > 
> > mouse
> > 
> > > >> over variables as the last couple of lines are an example of.
> > > >> 
> > > >> I'm using the latest releases of just about everything, which at the
> > > >> moment is GDB 7.11.1, Qt 5.6.1, Frameworks 5.24.0, Plasma 5.7.2, and
> > 
> > tip
> > 
> > > >> of
> > > >> the 5.0 branch for KDevelop and KDevPlatform.
> > > >> 
> > > >> Is this a known issue or am I the lucky discoverer? I can't recall
> > > >> exactly when I first noticed it, sorry, but it must have been
> > 
> > recently.
> > 
> > > >> Thanks, cheers.
> > > >> 
> > > >> Jeremy
> > > > 
> > > > _______________________________________________
> > > > KDevelop-devel mailing list
> > > > KDevelop-devel at kde.org
> > > > https://mail.kde.org/mailman/listinfo/kdevelop-devel
> > 
> > --
> > Kevin Funk | kfunk at kde.org | http://kfunk.org


-- 
Kevin Funk | kfunk at kde.org | http://kfunk.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20160726/e5b425fb/attachment.sig>


More information about the KDevelop-devel mailing list