mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 14:39:09 +08:00
Improve remote attach round-trips without btrace
For remotes which do not support btrace at all, we can save several round trips for each thread. This is especially significant when your remote is a kernel with 100s or 1000s of threads and latency is intercontinental. Previously, with target, remote, and infrun debugging enabled, one might see: Sending packet: $Hg18aee#43...Ack Packet received: OK Sending packet: $Hg186f7#eb...Ack Packet received: OK remote:target_xfer_partial (24, , 0x805454000, 0x0, 0x0, 4096) = -1, 0 repeated for all non-exited threads. Afterwards, if the remote does not specify 'qXfer:btrace-conf:read+' in qSupported stub features, these unnecessary thread switches are avoided. gdb/ChangeLog: * remote.c (remote_target::remote_btrace_maybe_reopen): Avoid unnecessary thread walk if remote doesn't support the packet.
This commit is contained in:

committed by
Pedro Alves

parent
ac533243be
commit
aedbe3bb9f
@ -1,3 +1,8 @@
|
|||||||
|
2019-08-20 Conrad Meyer <cem@FreeBSD.org>
|
||||||
|
|
||||||
|
* remote.c (remote_target::remote_btrace_maybe_reopen): Avoid
|
||||||
|
unnecessary thread walk if remote doesn't support the packet.
|
||||||
|
|
||||||
2019-08-19 Tom Tromey <tromey@adacore.com>
|
2019-08-19 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
* python/py-value.c (value_has_field): Fix indentation.
|
* python/py-value.c (value_has_field): Fix indentation.
|
||||||
|
@ -13700,6 +13700,11 @@ remote_target::remote_btrace_maybe_reopen ()
|
|||||||
int warned = 0;
|
int warned = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Don't bother walking the entirety of the remote thread list when
|
||||||
|
we know the feature isn't supported by the remote. */
|
||||||
|
if (packet_support (PACKET_qXfer_btrace_conf) != PACKET_ENABLE)
|
||||||
|
return;
|
||||||
|
|
||||||
scoped_restore_current_thread restore_thread;
|
scoped_restore_current_thread restore_thread;
|
||||||
|
|
||||||
for (thread_info *tp : all_non_exited_threads ())
|
for (thread_info *tp : all_non_exited_threads ())
|
||||||
|
Reference in New Issue
Block a user