This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Add asserts in target_fetch/store_registers


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c6386875ba57a806c896ba097afef525671de4a0

commit c6386875ba57a806c896ba097afef525671de4a0
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date:   Mon Mar 13 18:51:38 2017 -0400

    Add asserts in target_fetch/store_registers
    
    We are currently assuming that regcache->ptid is equal to inferior_ptid
    when we call target_fetch/store_registers.  These asserts just validate
    that assumption.  Also, since the following patches will change target
    code to use regcache->ptid instead of inferior_ptid, asserting that they
    are the same should ensure that our changes don't have any unintended
    consequences.
    
    gdb/ChangeLog:
    
    	* target.c (target_fetch_registers, target_store_registers): Add
    	assert.

Diff:
---
 gdb/ChangeLog | 5 +++++
 gdb/target.c  | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3e155a3..f8cb947 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
 2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
 
+	* target.c (target_fetch_registers, target_store_registers): Add
+	assert.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
 	* regcache.h (regcache_get_ptid): New function.
 	* regcache.c (regcache_get_ptid): New function.
 
diff --git a/gdb/target.c b/gdb/target.c
index 0ff8515..359bf0d 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -3587,6 +3587,8 @@ debug_print_register (const char * func,
 void
 target_fetch_registers (struct regcache *regcache, int regno)
 {
+  gdb_assert (ptid_equal (regcache_get_ptid (regcache), inferior_ptid));
+
   current_target.to_fetch_registers (&current_target, regcache, regno);
   if (targetdebug)
     debug_print_register ("target_fetch_registers", regcache, regno);
@@ -3598,6 +3600,8 @@ target_store_registers (struct regcache *regcache, int regno)
   if (!may_write_registers)
     error (_("Writing to registers is not allowed (regno %d)"), regno);
 
+  gdb_assert (ptid_equal (regcache_get_ptid (regcache), inferior_ptid));
+
   current_target.to_store_registers (&current_target, regcache, regno);
   if (targetdebug)
     {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]