diff options
author | Tom Tromey <tromey@adacore.com> | 2023-01-06 09:30:40 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2023-02-15 08:59:53 -0700 |
commit | 81b86eced24f905545b58aa6c27478104c364976 (patch) | |
tree | 13ba0e3eb32d175df7304311bde05b496f2c86a9 /gdb/target-descriptions.c | |
parent | 71e28f788f4e5489501646093c6a34e01681d35b (diff) | |
download | gdb-81b86eced24f905545b58aa6c27478104c364976.zip gdb-81b86eced24f905545b58aa6c27478104c364976.tar.gz gdb-81b86eced24f905545b58aa6c27478104c364976.tar.bz2 |
Do not record a rejected target description
When connecting to a certain target, gdb issues a warning about the
target description:
(gdb) target remote localhost:7947
Remote debugging using localhost:7947
warning: Architecture rejected target-supplied description
If you then kill the inferior and change the exec-file, this will
happen:
(gdb) file bar
Architecture of file not recognized.
After this, debugging doesn't work very well.
What happens here is that, despite the warning,
target_find_description records the downloaded description in the
target_desc_info. Then the "file" command ends up calling
set_gdbarch_from_file, which uses that description.
It seems to me that, because the architecture rejected the
description, it should not be used. That is what this patch
implements.
Diffstat (limited to 'gdb/target-descriptions.c')
-rw-r--r-- | gdb/target-descriptions.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index b08a185..c62d436 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -500,7 +500,10 @@ target_find_description (void) info.target_desc = tdesc_info->tdesc; if (!gdbarch_update_p (info)) - warning (_("Architecture rejected target-supplied description")); + { + warning (_("Architecture rejected target-supplied description")); + tdesc_info->tdesc = nullptr; + } else { struct tdesc_arch_data *data; |