diff options
author | Pitchumani Sivanupandi <pitchumani.s@atmel.com> | 2015-10-06 18:29:03 +0200 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2015-10-06 18:29:03 +0200 |
commit | cbd641edf3323ce354c0bc7eb54496057040b564 (patch) | |
tree | 0ae1f86b69551a1de4f69d8b4df53e4323f2a0db /gdb | |
parent | 6540205329fe12999006bd886402823f4fce1c6e (diff) | |
download | gdb-cbd641edf3323ce354c0bc7eb54496057040b564.zip gdb-cbd641edf3323ce354c0bc7eb54496057040b564.tar.gz gdb-cbd641edf3323ce354c0bc7eb54496057040b564.tar.bz2 |
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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | 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). */ |