From 7ca9b62a2b63ae04d554053c2a2053d13a9d8c92 Mon Sep 17 00:00:00 2001 From: Tankut Baris Aktemur Date: Thu, 14 May 2020 13:59:53 +0200 Subject: [PATCH] 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 * infrun.c (resume_1): Move a 'regcache_read_pc' call down to first use. --- gdb/ChangeLog | 5 +++++ gdb/infrun.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 462884ce41e..8b756c451b4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-05-14 Tankut Baris Aktemur + + * infrun.c (resume_1): Move a 'regcache_read_pc' call down to first + use. + 2020-05-14 Tankut Baris Aktemur * regcache.c (regcache_read_pc_protected): New function 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), " -- 2.30.2