public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [RFC] Remote packet split out in different UI for 'new-ui' command
@ 2021-02-15 18:25 Muhammad Bilal
  2021-02-18 10:34 ` Muhammad Bilal
  0 siblings, 1 reply; 2+ messages in thread
From: Muhammad Bilal @ 2021-02-15 18:25 UTC (permalink / raw)
  To: gdb-patches

Hi experts,

If I give gdb command from new-ui console then some gdb remote packets 
go to main ui console.


i.e simple hello world  remote debug

Create tty for new-ui

$ cat gdb-client
#!/bin/bash

reset
tty
tail -f /dev/null

$ ./gdb-client
/dev/pts/3




Launch gdbserver

$ gdbserver :10000 /tmp/hello


  Launch gdb

$ gdb /tmp/hello  -q -ex "new-ui mi /dev/pts/3" -ex "set debug remote 1" 
-ex "tar rem :10000"
(gdb) tbreak main
(gdb) c
(gdb) b hello_world.c:3


Resume from new-ui mi console

(gdb)
-exec-continue
^running
*running,thread-id="all"
(gdb)
&"Sending packet: $Z0,555555555151,1#87..."
&"Packet received: OK\n"
&"Sending packet: $Z0,7ffff7fd37a5,1#e3..."
&"Packet received: OK\n"
&"Sending packet: $Z0,7ffff7fe508e,1#e6..."
&"Packet received: OK\n"
&"Sending packet: $Z0,7ffff7fe63e4,1#e6..."
&"Packet received: OK\n"
&"Sending packet: $vCont;c:p2bc5d1.-1#9f..."
=breakpoint-modified,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="0x0000555555555151",func="main",file="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",fullname="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",line="3",thread-groups=["i1"],times="1",original-location="hello_world.c:3"}
~"\n"
~"Breakpoint 5, main () at 
/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c:3\n"
~"3\t\tputs(\"!!!Hello World!!!\"); /* prints !!!Hello World!!! */\n"
*stopped,reason="breakpoint-hit",disp="keep",bkptno="5",frame={addr="0x0000555555555151",func="main",args=[],file="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",fullname="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",line="3",arch="i386:x86-64"},thread-id="1",stopped-threads="all",core="10"
(gdb)


Now you can see some packets also arrives in main gdb console


Sending packet: $m555555555140,40#6f...Packet received: 
f30f1efae977fffffff30f1efa554889e5488d3dac0e0000e8f3feffffb8000000005dc3662e0f1f8400000000006690f30f1efa41574c8d3d3b2c0000415649
Sending packet: $m555555555151,1#3e...Packet received: 48
Breakpoint 5 at 0x555555555151: file 
/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c, line 3.
(gdb) Packet received: 
T05swbreak:;06:60d7ffffff7f0000;07:60d7ffffff7f0000;10:5151555555550000;thread:p2bc5d1.2bc5d1;core:a;
Sending packet: $qXfer:threads:read::0,1000#92...Packet received: 
l<threads>\n<thread id="p2bc5d1.2bc5d1" core="10" 
name="hello"/>\n</threads>\n
Sending packet: $z0,555555555151,1#a7...Packet received: OK
Sending packet: $z0,7ffff7fd37a5,1#03...Packet received: OK
Sending packet: $z0,7ffff7fe508e,1#06...Packet received: OK
Sending packet: $z0,7ffff7fe63e4,1#06...Packet received: OK

Breakpoint 2, main ()
     at /var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c:3
3        puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
(gdb)

So, why GDB divide out remote packets to different console for singe 
command?

This makes difficult to examine the debug packets flows in front-end gdb 
(for example eclipse) where packets divide out in different console and 
user need to parse both new-ui and main ui if some error come.


I see this is intentional in GDB .

/* Events are always processed with the main UI as current UI. This
  way, warnings, debug output, etc. are always consistently sent to
  the main console. */

scoped_restore save_ui = make_scoped_restore (&current_ui, main_ui);



IMO, all remote packets should be on same console, from where command 
executed...

Can we comment out above code or may be add some command to on|off this 
behavior or do you see any regression to comment out the code ???




Thanks,

-Bilal

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

* Re: [RFC] Remote packet split out in different UI for 'new-ui' command
  2021-02-15 18:25 [RFC] Remote packet split out in different UI for 'new-ui' command Muhammad Bilal
@ 2021-02-18 10:34 ` Muhammad Bilal
  0 siblings, 0 replies; 2+ messages in thread
From: Muhammad Bilal @ 2021-02-18 10:34 UTC (permalink / raw)
  To: gdb-patches

any thoughts please!

On 15/2/21 11:25 PM, Muhammad Bilal wrote:
> Hi experts,
>
> If I give gdb command from new-ui console then some gdb remote packets 
> go to main ui console.
>
>
> i.e simple hello world  remote debug
>
> Create tty for new-ui
>
> $ cat gdb-client
> #!/bin/bash
>
> reset
> tty
> tail -f /dev/null
>
> $ ./gdb-client
> /dev/pts/3
>
>
>
>
> Launch gdbserver
>
> $ gdbserver :10000 /tmp/hello
>
>
>  Launch gdb
>
> $ gdb /tmp/hello  -q -ex "new-ui mi /dev/pts/3" -ex "set debug remote 
> 1" -ex "tar rem :10000"
> (gdb) tbreak main
> (gdb) c
> (gdb) b hello_world.c:3
>
>
> Resume from new-ui mi console
>
> (gdb)
> -exec-continue
> ^running
> *running,thread-id="all"
> (gdb)
> &"Sending packet: $Z0,555555555151,1#87..."
> &"Packet received: OK\n"
> &"Sending packet: $Z0,7ffff7fd37a5,1#e3..."
> &"Packet received: OK\n"
> &"Sending packet: $Z0,7ffff7fe508e,1#e6..."
> &"Packet received: OK\n"
> &"Sending packet: $Z0,7ffff7fe63e4,1#e6..."
> &"Packet received: OK\n"
> &"Sending packet: $vCont;c:p2bc5d1.-1#9f..."
> =breakpoint-modified,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="0x0000555555555151",func="main",file="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",fullname="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",line="3",thread-groups=["i1"],times="1",original-location="hello_world.c:3"} 
>
> ~"\n"
> ~"Breakpoint 5, main () at 
> /var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c:3\n"
> ~"3\t\tputs(\"!!!Hello World!!!\"); /* prints !!!Hello World!!! */\n"
> *stopped,reason="breakpoint-hit",disp="keep",bkptno="5",frame={addr="0x0000555555555151",func="main",args=[],file="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",fullname="/var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c",line="3",arch="i386:x86-64"},thread-id="1",stopped-threads="all",core="10" 
>
> (gdb)
>
>
> Now you can see some packets also arrives in main gdb console
>
>
> Sending packet: $m555555555140,40#6f...Packet received: 
> f30f1efae977fffffff30f1efa554889e5488d3dac0e0000e8f3feffffb8000000005dc3662e0f1f8400000000006690f30f1efa41574c8d3d3b2c0000415649
> Sending packet: $m555555555151,1#3e...Packet received: 48
> Breakpoint 5 at 0x555555555151: file 
> /var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c, line 3.
> (gdb) Packet received: 
> T05swbreak:;06:60d7ffffff7f0000;07:60d7ffffff7f0000;10:5151555555550000;thread:p2bc5d1.2bc5d1;core:a;
> Sending packet: $qXfer:threads:read::0,1000#92...Packet received: 
> l<threads>\n<thread id="p2bc5d1.2bc5d1" core="10" 
> name="hello"/>\n</threads>\n
> Sending packet: $z0,555555555151,1#a7...Packet received: OK
> Sending packet: $z0,7ffff7fd37a5,1#03...Packet received: OK
> Sending packet: $z0,7ffff7fe508e,1#06...Packet received: OK
> Sending packet: $z0,7ffff7fe63e4,1#06...Packet received: OK
>
> Breakpoint 2, main ()
>     at /var/mbilal/workspace/cdt-2020-12/hello_world/src/hello_world.c:3
> 3        puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
> (gdb)
>
> So, why GDB divide out remote packets to different console for singe 
> command?
>
> This makes difficult to examine the debug packets flows in front-end 
> gdb (for example eclipse) where packets divide out in different 
> console and user need to parse both new-ui and main ui if some error 
> come.
>
>
> I see this is intentional in GDB .
>
> /* Events are always processed with the main UI as current UI. This
>  way, warnings, debug output, etc. are always consistently sent to
>  the main console. */
>
> scoped_restore save_ui = make_scoped_restore (&current_ui, main_ui);
>
>
>
> IMO, all remote packets should be on same console, from where command 
> executed...
>
> Can we comment out above code or may be add some command to on|off 
> this behavior or do you see any regression to comment out the code ???
>
>
>
>
> Thanks,
>
> -Bilal

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

end of thread, other threads:[~2021-02-18 10:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 18:25 [RFC] Remote packet split out in different UI for 'new-ui' command Muhammad Bilal
2021-02-18 10:34 ` Muhammad Bilal

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