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] parse load_offset (bias) of restore command as long


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

commit cbd641edf3323ce354c0bc7eb54496057040b564
Author: Pitchumani Sivanupandi <pitchumani.s@atmel.com>
Date:   Tue Oct 6 18:29:03 2015 +0200

    parse load_offset (bias) of restore command as long
    
    Following failures are noticed for avr-gdb. This may be the case
    for targets like AVR which has integer_to_address hook defined.
    
    FAIL: gdb.base/dump.exp: struct copy, srec; value restored ok
    FAIL: gdb.base/dump.exp: struct copy, ihex; value restored ok
    FAIL: gdb.base/dump.exp: struct copy, tekhex; value restored ok
    
    These tests are failed because load_offset(bias) of restore command
    parsed as address.
    
    command: restore filename [binary] bias start end
    
    Except binary, other BFDs have a built-in location; gdb restores content
    at offset 'bias' from that location. So, 'bias' of 'restore' command should
    be parsed as address only when the file is binary.
    
    Below patch changes gdb to parse 'bias' as long if the file is not binary.
    
    gdb/ChangeLog
    
    2015-10-06  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
    
    	* cli/cli-dump.c (restore_command): Parse load_offset (bias) as address
    	only when the file is binary.

Diff:
---
 gdb/ChangeLog      | 5 +++++
 gdb/cli/cli-dump.c | 5 +++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 20d4a4b..1cb28c6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2015-10-06  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
+
+	* cli/cli-dump.c (restore_command): Parse load_offset (bias) as address
+	only when the file is binary.
+
 2015-10-02  James Bowman  <james.bowman@ftdichip.com>
 
 	* ft32-tdep.c (ft32_analyze_prologue): Add function prolog
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index 931bb4a..a434ac1 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -596,8 +596,9 @@ restore_command (char *args_in, int from_tty)
 	}
       /* Parse offset (optional).  */
       if (args != NULL && *args != '\0')
-      data.load_offset = 
-	parse_and_eval_address (scan_expression_with_cleanup (&args, NULL));
+	data.load_offset = binary_flag ?
+	  parse_and_eval_address (scan_expression_with_cleanup (&args, NULL)) :
+	  parse_and_eval_long (scan_expression_with_cleanup (&args, NULL));
       if (args != NULL && *args != '\0')
 	{
 	  /* Parse start address (optional).  */


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