aboutsummaryrefslogtreecommitdiff
path: root/gdb/target-descriptions.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-01-06 09:30:40 -0700
committerTom Tromey <tromey@adacore.com>2023-02-15 08:59:53 -0700
commit81b86eced24f905545b58aa6c27478104c364976 (patch)
tree13ba0e3eb32d175df7304311bde05b496f2c86a9 /gdb/target-descriptions.c
parent71e28f788f4e5489501646093c6a34e01681d35b (diff)
downloadgdb-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.c5
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;