diff options
author | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2020-05-14 13:59:53 +0200 |
---|---|---|
committer | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2020-05-14 13:59:53 +0200 |
commit | 7ca9b62a2b63ae04d554053c2a2053d13a9d8c92 (patch) | |
tree | 33a18fcc1bb47295fca866619dc3bad3687af977 | |
parent | fc75c28ba1ea7353fb6e1e5904c5703a48504b67 (diff) | |
download | binutils-gdb-7ca9b62a2b63ae04d554053c2a2053d13a9d8c92.tar.gz |
gdb/infrun: move a 'regcache_read_pc' call down to first use
In infrun.c's resume_1 function, move the definition of the local
variable PC down to its first use. This is useful if the thread we want
to resume is already gone with a pending exit event, because we avoid
the error we would see otherwise when trying to read the PC.
gdb/ChangeLog:
2020-05-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
* infrun.c (resume_1): Move a 'regcache_read_pc' call down to first
use.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/infrun.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 462884ce41e..8b756c451b4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2020-05-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> + * infrun.c (resume_1): Move a 'regcache_read_pc' call down to first + use. + +2020-05-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> + * regcache.c (regcache_read_pc_protected): New function implementation that returns 0 if the PC cannot read via 'regcache_read_pc'. diff --git a/gdb/infrun.c b/gdb/infrun.c index 5e01336ab09..db88a1eef15 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2279,7 +2279,6 @@ resume_1 (enum gdb_signal sig) struct regcache *regcache = get_current_regcache (); struct gdbarch *gdbarch = regcache->arch (); struct thread_info *tp = inferior_thread (); - CORE_ADDR pc = regcache_read_pc (regcache); const address_space *aspace = regcache->aspace (); ptid_t resume_ptid; /* This represents the user's step vs continue request. When @@ -2358,6 +2357,8 @@ resume_1 (enum gdb_signal sig) step = 0; } + CORE_ADDR pc = regcache_read_pc (regcache); + if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: resume (step=%d, signal=%s), " |