mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00

While running test-case gdb.multi/multi-target.exp, I observed a silent timeout related to "monitor exit". By making the timeout explicit in an expect clause in gdbserver_gdb_exit: ... + timeout { + warning "Timed out waiting for EOF in server after $monitor_exit" + } ... we get in the log: ... monitor exit^M "monitor" command not supported by this target.^M (gdb) WARNING: Timed out waiting for EOF in server after monitor exit ... What happens is the following: - the inferior 5 is selected - a breakpoint is set in inferior 1 - the breakpoint triggers and we switch to inferior 1 - setup is called by test_continue, which calls clean_restart, which calls gdbserver_gdb_exit (due to load_lib gdbserver-support.exp) - gdbserver_gdb_exit issues "monitor exit" - gdb responds with "not supported by this target" because inferior 1 is native Fix this by keeping a list of server_spawn_id, and cleaning those up before calling gdbserver_gdb_exit. This reduces testing time from 1m22s to 32s. gdb/testsuite/ChangeLog: 2020-04-02 Tom de Vries <tdevries@suse.de> * lib/gdbserver-support.exp (gdbserver_exit): Factor out of ... (gdbserver_gdb_exit): ... here. Add timeout warning. * gdb.multi/multi-target.exp (server_spawn_ids): New global var. (connect_target_extended_remote): Append new server_spawn_id to server_spawn_ids. (cleanup): New proc. (setup, <toplevel>): Call cleanup.
…
…
…
…
…
…
…
…
…
…
README for GNU development tools This directory contains various GNU compilers, assemblers, linkers, debuggers, etc., plus their support routines, definitions, and documentation. If you are receiving this as part of a GDB release, see the file gdb/README. If with a binutils release, see binutils/README; if with a libg++ release, see libg++/README, etc. That'll give you info about this package -- supported targets, how to use it, how to report bugs, etc. It is now possible to automatically configure and build a variety of tools with one command. To build all of the tools contained herein, run the ``configure'' script here, e.g.: ./configure make To install them (by default in /usr/local/bin, /usr/local/lib, etc), then do: make install (If the configure script can't determine your type of computer, give it the name as an argument, for instance ``./configure sun4''. You can use the script ``config.sub'' to test whether a name is recognized; if it is, config.sub translates it to a triplet specifying CPU, vendor, and OS.) If you have more than one compiler on your system, it is often best to explicitly set CC in the environment before running configure, and to also set CC when running make. For example (assuming sh/bash/ksh): CC=gcc ./configure make A similar example using csh: setenv CC gcc ./configure make Much of the code and documentation enclosed is copyright by the Free Software Foundation, Inc. See the file COPYING or COPYING.LIB in the various directories, for a description of the GNU General Public License terms under which you can copy the files. REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info on where and how to report problems.
Description
Languages
C
51.8%
Makefile
22.4%
Assembly
12.3%
C++
6%
Roff
1.4%
Other
5.4%