• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

Revision3cb01d40d2c894fc3795f0030ed2cc2010212f62 (tree)
Zeit2009-08-07 12:19:11
AutorMichael Snyder <msnyder@vmwa...>
CommiterMichael Snyder

Log Message

2009-08-06 Michael Snyder <msnyder@vmware.com>

* record.c (bfdcore_write): New function, abstracted out
from cmd_record_dump.
(cmd_record_dump): Call bfdcore_write.
(cmd_record_load): Fix setting of record_insn_num.

Ändern Zusammenfassung

Diff

--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
11 2009-08-06 Michael Snyder <msnyder@vmware.com>
22
3+ * record.c (bfdcore_write): New function, abstracted out
4+ from cmd_record_dump.
5+ (cmd_record_dump): Call bfdcore_write.
6+ (cmd_record_load): Fix setting of record_insn_num.
7+
8+2009-08-06 Michael Snyder <msnyder@vmware.com>
9+
310 * record.c (record_list_release): Finish releasing record list.
411 (cmd_record_load): No longer necessary to null out
512 record list pointers: record_list_release does it.
--- a/gdb/record.c
+++ b/gdb/record.c
@@ -1246,6 +1246,16 @@ cmd_record_fd_cleanups (void *recfdp)
12461246
12471247 #include "elf-bfd.h"
12481248
1249+static int
1250+bfdcore_write (bfd *obfd, asection *osec, void *buf, int len, int *offset)
1251+{
1252+ int ret = bfd_set_section_contents (obfd, osec, buf, *offset, len);
1253+
1254+ if (ret)
1255+ *offset += len;
1256+ return ret;
1257+}
1258+
12491259 static void
12501260 cmd_record_dump (char *args, int from_tty)
12511261 {
@@ -1338,10 +1348,7 @@ cmd_record_dump (char *args, int from_tty)
13381348 fprintf_unfiltered (gdb_stdlog, _("\
13391349 Writing 4-byte magic cookie RECORD_FILE_MAGIC (0x%08x)\n"),
13401350 magic);
1341- if (bfd_set_section_contents (obfd, osec, &magic,
1342- bfd_offset, sizeof (magic)))
1343- bfd_offset += sizeof (magic);
1344- else
1351+ if (!bfdcore_write (obfd, osec, &magic, sizeof (magic), &bfd_offset))
13451352 error (_("Failed to write 'magic' to %s (%s)"),
13461353 recfilename, bfd_errmsg (bfd_get_error ()));
13471354
@@ -1352,10 +1359,7 @@ cmd_record_dump (char *args, int from_tty)
13521359 uint64_t tmpu64;
13531360
13541361 tmpu8 = p->type;
1355- if (bfd_set_section_contents (obfd, osec, &tmpu8,
1356- bfd_offset, sizeof (tmpu8)))
1357- bfd_offset += sizeof (tmpu8);
1358- else
1362+ if (!bfdcore_write (obfd, osec, &tmpu8, sizeof (tmpu8), &bfd_offset))
13591363 error (_("Failed to write 'type' to %s (%s)"),
13601364 recfilename, bfd_errmsg (bfd_get_error ()));
13611365
@@ -1373,20 +1377,14 @@ cmd_record_dump (char *args, int from_tty)
13731377 *(ULONGEST *) p->u.reg.val,
13741378 MAX_REGISTER_SIZE);
13751379 /* FIXME: register num does not need 8 bytes. */
1376- if (bfd_set_section_contents (obfd, osec, &tmpu64,
1377- bfd_offset, sizeof (tmpu64)))
1378- bfd_offset += sizeof (tmpu64);
1379- else
1380+ if (!bfdcore_write (obfd, osec, &tmpu64,
1381+ sizeof (tmpu64), &bfd_offset))
13801382 error (_("Failed to write regnum to %s (%s)"),
13811383 recfilename, bfd_errmsg (bfd_get_error ()));
13821384
13831385 /* FIXME: add a len field, and write the smaller value. */
1384- if (bfd_set_section_contents (obfd, osec,
1385- p->u.reg.val,
1386- bfd_offset,
1387- MAX_REGISTER_SIZE))
1388- bfd_offset += MAX_REGISTER_SIZE;
1389- else
1386+ if (!bfdcore_write (obfd, osec, p->u.reg.val,
1387+ MAX_REGISTER_SIZE, &bfd_offset))
13901388 error (_("Failed to write regval to %s (%s)"),
13911389 recfilename, bfd_errmsg (bfd_get_error ()));
13921390 break;
@@ -1400,10 +1398,7 @@ cmd_record_dump (char *args, int from_tty)
14001398 Writing memory 0x%08x (1 plus 8 plus 8 bytes plus %d bytes)\n"),
14011399 (unsigned int) p->u.mem.addr,
14021400 p->u.mem.len);
1403- if (bfd_set_section_contents (obfd, osec, &tmpu64,
1404- bfd_offset, sizeof (tmpu64)))
1405- bfd_offset += sizeof (tmpu64);
1406- else
1401+ if (!bfdcore_write (obfd, osec, &tmpu64, sizeof (tmpu64), &bfd_offset))
14071402 error (_("Failed to write memaddr to %s (%s)"),
14081403 recfilename, bfd_errmsg (bfd_get_error ()));
14091404
@@ -1412,19 +1407,12 @@ cmd_record_dump (char *args, int from_tty)
14121407 tmpu64 = bswap_64 (tmpu64);
14131408
14141409 /* FIXME: len does not need 8 bytes. */
1415- if (bfd_set_section_contents (obfd, osec, &tmpu64,
1416- bfd_offset, sizeof (tmpu64)))
1417- bfd_offset += sizeof (tmpu64);
1418- else
1410+ if (!bfdcore_write (obfd, osec, &tmpu64, sizeof (tmpu64), &bfd_offset))
14191411 error (_("Failed to write memlen to %s (%s)"),
14201412 recfilename, bfd_errmsg (bfd_get_error ()));
14211413
1422- if (bfd_set_section_contents (obfd, osec,
1423- p->u.mem.val,
1424- bfd_offset,
1425- p->u.mem.len))
1426- bfd_offset += p->u.mem.len;
1427- else
1414+ if (!bfdcore_write (obfd, osec, p->u.mem.val,
1415+ p->u.mem.len, &bfd_offset))
14281416 error (_("Failed to write memval to %s (%s)"),
14291417 recfilename, bfd_errmsg (bfd_get_error ()));
14301418 break;
@@ -1648,7 +1636,7 @@ cmd_record_load (char *args, int from_tty)
16481636 record_arch_list_head->prev = rec;
16491637
16501638 /* Update record_insn_num and record_insn_max_num. */
1651- record_insn_num += insn_number;
1639+ record_insn_num = insn_number;
16521640 if (record_insn_num > record_insn_max_num)
16531641 {
16541642 record_insn_max_num = record_insn_num;