public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug breakpoints/18742] New: In MI, breakpoint commands produce MI output instead of CLI
@ 2015-07-30 14:58 marc.khouzam at ericsson dot com
  2015-07-30 14:59 ` [Bug breakpoints/18742] " marc.khouzam at ericsson dot com
  2022-08-12 18:09 ` tromey at sourceware dot org
  0 siblings, 2 replies; 3+ messages in thread
From: marc.khouzam at ericsson dot com @ 2015-07-30 14:58 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18742

            Bug ID: 18742
           Summary: In MI, breakpoint commands produce MI output instead
                    of CLI
           Product: gdb
           Version: 7.9
            Status: NEW
          Severity: normal
          Priority: P2
         Component: breakpoints
          Assignee: unassigned at sourceware dot org
          Reporter: marc.khouzam at ericsson dot com
  Target Milestone: ---

Understandably, breakpoint commands can only be in CLI format.  This makes
sense to me as bp commands are something that the user creates, and therefore
are created in CLI format.

One would expect those CLI bp commands to always output in CLI format, but when
GDB is in MI mode, the output of bp commands is in MI format, which does not
make sense to a user.

I believe GDB should know it is running bp commands and therefore should force
them to be run in a CLI interpreter, even when the global interpreter is MI.

Below is cleaned up example of the problem:

> gdb.master -i mi testing/loopfirst
~"GNU gdb (GDB) 7.10.50.20150730-cvs\n"
(gdb) l
&"l\n"
~"1\t#include <unistd.h>\n"
~"2\t#include <stdio.h>\n"
~"3\t\n"
~"4\tint j = 0;\n"
~"5\t\n"
~"6\tint main() {\n"
~"7\t    int max = 900;\n"
~"8\t    for (int i=0;i<max;i++) {\n"
~"9\t        printf(\"i is %d\\n\",i);\n"
~"10\t        sleep(1);\n"
~"11\t    }\n"
~"12\t    return 0;\n"
~"13\t}\n"
^done
(gdb) 
-break-insert 10
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400570",func="main()",file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="10",thread-groups=["i1"],times="0",original-location="/home/lmckhou/testing/loopfirst.cc:10"}
(gdb) 
-break-commands 1 "i b"
^done
(gdb)i b
&"i b\n"
~"Num     Type           Disp Enb Address            What\n"
~"1       breakpoint     keep y   0x0000000000400570 in main() at
loopfirst.cc:10\n"
~"        i b\n"
^done
(gdb)
run
&"run\n"
~"Starting program: /home/lmckhou/testing/loopfirst \n"
=thread-group-started,id="i1",pid="7764"
=thread-created,id="1",group-id="i1"
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
^running
*running,thread-id="all"
(gdb) 
=breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400570",func="main()",file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="10",thread-groups=["i1"],times="1",script={"i
b"},original-location="/home/lmckhou/testing/loopfirst.cc:10"}
~"\nBreakpoint "
~"1, main () at loopfirst.cc:10\n"
~"10\t        sleep(1);\n"
*stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x0000000000400570",func="main",args=[],file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="10"},thread-id="1",stopped-threads="all",core="3"
(gdb) 

========> Notice no CLI printout for 'i b' when the bp is hit

========> I then simply press <enter> and below I get the output 
========> of 'i b' but in MI format!

&"\n"
^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="18",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400570",func="main()",file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="10",thread-groups=["i1"],times="1",script={"i
b"},original-location="/home/lmckhou/testing/loopfirst.cc:10"}]}
(gdb) 

======> Interestingly if I force the bp command to use a CLI interpreter
======> by wrapping it in "interpreter-exec console", things work

(gdb) 
-break-commands 1 "interpreter-exec console \"i b\""
^done
(gdb) 
i b
&"i b\n"
~"Num     Type           Disp Enb Address            What\n"
~"1       breakpoint     keep y   0x0000000000400570 in main() at
loopfirst.cc:10\n"
~"        interpreter-exec console \"i b\"\n"
^done
(gdb) 
c
&"c\n"
~"Continuing.\n"
^running
*running,thread-id="all"
(gdb) 
=breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400570",func="main()",file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="10",thread-groups=["i1"],times="2",script={"interpreter-exec
console \"i b\""},original-location="/home/lmckhou/testing/loopfirst.cc:10"}
~"\nBreakpoint "
~"1, main () at loopfirst.cc:10\n"
~"10\t        sleep(1);\n"
*stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x0000000000400570",func="main",args=[],file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="10"},thread-id="1",stopped-threads="all",core="3"
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000400570 in main() at loopfirst.cc:10
        breakpoint already hit 2 times
        interpreter-exec console "i b"
~"(gdb) "
(gdb) 

======> Above we can see the CLI output of 'i b' when the bp is hit.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug breakpoints/18742] In MI, breakpoint commands produce MI output instead of CLI
  2015-07-30 14:58 [Bug breakpoints/18742] New: In MI, breakpoint commands produce MI output instead of CLI marc.khouzam at ericsson dot com
@ 2015-07-30 14:59 ` marc.khouzam at ericsson dot com
  2022-08-12 18:09 ` tromey at sourceware dot org
  1 sibling, 0 replies; 3+ messages in thread
From: marc.khouzam at ericsson dot com @ 2015-07-30 14:59 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18742

Marc Khouzam <marc.khouzam at ericsson dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |antoine.tremblay at ericsson dot c
                   |                            |om,
                   |                            |simon.marchi at ericsson dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug breakpoints/18742] In MI, breakpoint commands produce MI output instead of CLI
  2015-07-30 14:58 [Bug breakpoints/18742] New: In MI, breakpoint commands produce MI output instead of CLI marc.khouzam at ericsson dot com
  2015-07-30 14:59 ` [Bug breakpoints/18742] " marc.khouzam at ericsson dot com
@ 2022-08-12 18:09 ` tromey at sourceware dot org
  1 sibling, 0 replies; 3+ messages in thread
From: tromey at sourceware dot org @ 2022-08-12 18:09 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18742

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org

--- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
Makes sense to me.
I think bpstat_do_actions_1 just has to temporarily set the current interp.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-12 18:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-30 14:58 [Bug breakpoints/18742] New: In MI, breakpoint commands produce MI output instead of CLI marc.khouzam at ericsson dot com
2015-07-30 14:59 ` [Bug breakpoints/18742] " marc.khouzam at ericsson dot com
2022-08-12 18:09 ` tromey at sourceware dot org

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).