2003-08-12 Andrew Cagney <cagney@redhat.com>
* Makefile.in (dsrec.o): Update dependencies. * dsrec.c: Include "gdb_assert.h". (make_srec): Use snprintf instead of sprintf, use a literal format string.
This commit is contained in:
parent
bcf7d3caa2
commit
44160db329
3 changed files with 16 additions and 8 deletions
|
@ -1,3 +1,10 @@
|
|||
2003-08-12 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* Makefile.in (dsrec.o): Update dependencies.
|
||||
* dsrec.c: Include "gdb_assert.h".
|
||||
(make_srec): Use snprintf instead of sprintf, use a literal format
|
||||
string.
|
||||
|
||||
2003-08-12 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* frame.c (deprecated_frame_xmalloc): Use XMALLOC, instead of
|
||||
|
|
|
@ -1687,7 +1687,7 @@ disasm.o: disasm.c $(defs_h) $(target_h) $(value_h) $(ui_out_h) \
|
|||
doublest.o: doublest.c $(defs_h) $(doublest_h) $(floatformat_h) \
|
||||
$(gdb_assert_h) $(gdb_string_h) $(gdbtypes_h)
|
||||
dpx2-nat.o: dpx2-nat.c $(defs_h) $(gdbcore_h) $(gdb_string_h)
|
||||
dsrec.o: dsrec.c $(defs_h) $(serial_h) $(srec_h)
|
||||
dsrec.o: dsrec.c $(defs_h) $(serial_h) $(srec_h) $(gdb_assert_h)
|
||||
dummy-frame.o: dummy-frame.c $(defs_h) $(dummy_frame_h) $(regcache_h) \
|
||||
$(frame_h) $(inferior_h) $(gdb_assert_h) $(frame_unwind_h) \
|
||||
$(command_h) $(gdbcmd_h)
|
||||
|
|
15
gdb/dsrec.c
15
gdb/dsrec.c
|
@ -23,6 +23,7 @@
|
|||
#include "serial.h"
|
||||
#include "srec.h"
|
||||
#include <time.h>
|
||||
#include "gdb_assert.h"
|
||||
|
||||
extern void report_transfer_performance (unsigned long, time_t, time_t);
|
||||
|
||||
|
@ -223,10 +224,6 @@ make_srec (char *srec, CORE_ADDR targ_addr, bfd *abfd, asection *sect,
|
|||
const static char data_code_table[] = "123";
|
||||
const static char term_code_table[] = "987";
|
||||
const static char header_code_table[] = "000";
|
||||
const static char *formats[] =
|
||||
{"S%c%02X%04X",
|
||||
"S%c%02X%06X",
|
||||
"S%c%02X%08X"};
|
||||
char const *code_table;
|
||||
int addr_size;
|
||||
int payload_size;
|
||||
|
@ -271,9 +268,10 @@ make_srec (char *srec, CORE_ADDR targ_addr, bfd *abfd, asection *sect,
|
|||
payload_size = 0; /* Term or header packets have no payload */
|
||||
|
||||
/* Output the header. */
|
||||
|
||||
sprintf (srec, formats[addr_size - 2], code_table[addr_size - 2],
|
||||
addr_size + payload_size + 1, (int) targ_addr);
|
||||
snprintf (srec, (*maxrecsize) + 1, "S%c%02X%0*X",
|
||||
code_table[addr_size - 2],
|
||||
addr_size + payload_size + 1,
|
||||
addr_size * 2, (int) targ_addr);
|
||||
|
||||
/* Note that the checksum is calculated on the raw data, not the
|
||||
hexified data. It includes the length, address and the data
|
||||
|
@ -287,6 +285,9 @@ make_srec (char *srec, CORE_ADDR targ_addr, bfd *abfd, asection *sect,
|
|||
+ ((targ_addr >> 16) & 0xff)
|
||||
+ ((targ_addr >> 24) & 0xff));
|
||||
|
||||
/* NOTE: cagney/2003-08-10: The equation is old. Check that the
|
||||
recent snprintf changes match that equation. */
|
||||
gdb_assert (strlen (srec) == 1 + 1 + 2 + addr_size * 2);
|
||||
p = srec + 1 + 1 + 2 + addr_size * 2;
|
||||
|
||||
/* Build the Srecord. */
|
||||
|
|
Loading…
Reference in a new issue