mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
Change the_dummy_target to be a global
While debugging gdb, I printed the target stack and got: (top-gdb) p g_target_stack $10 = { m_top = thread_stratum, m_stack = {0x142b0b0, 0x13da600 <exec_ops>, 0x1c70690, 0x13d63b0 <ravenscar_ops>, 0x0, 0x0, 0x0} } (This is clearly from before the change to make ravenscar multi-target-capable.) Here, 0x142b0b0 is the singleton dummy target. It seems to me that since this is always a singleton, it would be a bit nicer if it were a global, so that it would be noted in the above. This patch implements this idea, and now I get: (top-gdb) p g_target_stack $2 = { m_top = dummy_stratum, m_stack = {0x1f1b040 <the_dummy_target>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} } I did not do the same for the debug target. It didn't seem as useful to me. gdb/ChangeLog 2019-03-05 Tom Tromey <tromey@adacore.com> * target.c (the_dummy_target): Move later. Change type to "dummy_target". (initialize_targets): Don't initialize the_dummy_target.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2019-03-05 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* target.c (the_dummy_target): Move later. Change type to
|
||||||
|
"dummy_target".
|
||||||
|
(initialize_targets): Don't initialize the_dummy_target.
|
||||||
|
|
||||||
2019-03-05 Tom Tromey <tromey@adacore.com>
|
2019-03-05 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
* gdb_bfd.c (gdb_bfd_fdopenr): Remove.
|
* gdb_bfd.c (gdb_bfd_fdopenr): Remove.
|
||||||
|
11
gdb/target.c
11
gdb/target.c
@ -106,10 +106,8 @@ static enum exec_direction_kind default_execution_direction
|
|||||||
static std::unordered_map<const target_info *, target_open_ftype *>
|
static std::unordered_map<const target_info *, target_open_ftype *>
|
||||||
target_factories;
|
target_factories;
|
||||||
|
|
||||||
/* The initial current target, so that there is always a semi-valid
|
/* The singleton debug target. */
|
||||||
current target. */
|
|
||||||
|
|
||||||
static struct target_ops *the_dummy_target;
|
|
||||||
static struct target_ops *the_debug_target;
|
static struct target_ops *the_debug_target;
|
||||||
|
|
||||||
/* The target stack. */
|
/* The target stack. */
|
||||||
@ -3239,6 +3237,10 @@ dummy_make_corefile_notes (struct target_ops *self,
|
|||||||
|
|
||||||
#include "target-delegates.c"
|
#include "target-delegates.c"
|
||||||
|
|
||||||
|
/* The initial current target, so that there is always a semi-valid
|
||||||
|
current target. */
|
||||||
|
|
||||||
|
static dummy_target the_dummy_target;
|
||||||
|
|
||||||
static const target_info dummy_target_info = {
|
static const target_info dummy_target_info = {
|
||||||
"None",
|
"None",
|
||||||
@ -3976,8 +3978,7 @@ set_write_memory_permission (const char *args, int from_tty,
|
|||||||
void
|
void
|
||||||
initialize_targets (void)
|
initialize_targets (void)
|
||||||
{
|
{
|
||||||
the_dummy_target = new dummy_target ();
|
push_target (&the_dummy_target);
|
||||||
push_target (the_dummy_target);
|
|
||||||
|
|
||||||
the_debug_target = new debug_target ();
|
the_debug_target = new debug_target ();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user