From: "Marcin Kościelnicki" <koriakin@0x04.net>
To: palves@redhat.com
Cc: gdb-patches@sourceware.org, "Marcin Kościelnicki" <koriakin@0x04.net>
Subject: [PATCH] gdb.trace: Use g packet order in tfile_fetch_registers.
Date: Wed, 10 Feb 2016 14:12:00 -0000 [thread overview]
Message-ID: <1455113532-24235-1-git-send-email-koriakin@0x04.net> (raw)
In-Reply-To: <56BB4101.5050902@redhat.com>
tfile_fetch_registers currently wrongly fetches registers using
gdb order instead of g packet order. On x86_64 with AVX, this causes
problems with ymm*h and orig_rax registers: gdb has ymm*h first, while
g packet has orig_rax first.
gdb/ChangeLog:
* tracefile-tfile.c (tfile_fetch_registers): Use g packet order
instead of gdb order.
gdb/doc/ChangeLog:
* gdb.texinfo (Trace File Format): Remove misleading information
about register block ordering.
---
Removed misleading documentation bit. OK to push now?
gdb/ChangeLog | 5 +++++
gdb/doc/ChangeLog | 5 +++++
gdb/doc/gdb.texinfo | 3 +--
gdb/tracefile-tfile.c | 11 ++++++-----
4 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0454696..fd7dd9d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2016-02-10 Marcin KoÅcielnicki <koriakin@0x04.net>
+ * tracefile-tfile.c (tfile_fetch_registers): Use g packet order
+ instead of gdb order.
+
+2016-02-10 Marcin KoÅcielnicki <koriakin@0x04.net>
+
* tracefile-tfile.c (trace_tdesc): New static variable.
(trace_tdesc_alloc): New static variable.
(trace_tdesc_len): New static variable.
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 05d2694..75b24ef 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-10 Marcin KoÅcielnicki <koriakin@0x04.net>
+
+ * gdb.texinfo (Trace File Format): Remove misleading information
+ about register block ordering.
+
2016-02-01 Doug Evans <dje@google.com>
* gdb.texinfo (Value Sizes): Fix typo.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 2d09d13..9db234e 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -41048,8 +41048,7 @@ endianness.
@item R @var{bytes}
Register block. The number and ordering of bytes matches that of a
@code{g} packet in the remote protocol. Note that these are the
-actual bytes, in target order and @value{GDBN} register order, not a
-hexadecimal encoding.
+actual bytes, in target order, not a hexadecimal encoding.
@item M @var{address} @var{length} @var{bytes}...
Memory block. This is a contiguous block of memory, at the 8-byte
diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c
index 139d90a..a6c3c9c 100644
--- a/gdb/tracefile-tfile.c
+++ b/gdb/tracefile-tfile.c
@@ -30,6 +30,7 @@
#include "filenames.h"
#include "xml-tdesc.h"
#include "target-descriptions.h"
+#include "remote.h"
#ifndef O_LARGEFILE
#define O_LARGEFILE 0
@@ -857,7 +858,7 @@ tfile_fetch_registers (struct target_ops *ops,
struct regcache *regcache, int regno)
{
struct gdbarch *gdbarch = get_regcache_arch (regcache);
- int offset, regn, regsize;
+ int offset, regn, regsize, dummy;
/* An uninitialized reg size says we're not going to be
successful at getting register blocks. */
@@ -870,11 +871,12 @@ tfile_fetch_registers (struct target_ops *ops,
tfile_read (regs, trace_regblock_size);
- /* Assume the block is laid out in GDB register number order,
- each register with the size that it has in GDB. */
- offset = 0;
for (regn = 0; regn < gdbarch_num_regs (gdbarch); regn++)
{
+ if (!remote_register_number_and_offset (get_regcache_arch (regcache),
+ regn, &dummy, &offset))
+ continue;
+
regsize = register_size (gdbarch, regn);
/* Make sure we stay within block bounds. */
if (offset + regsize > trace_regblock_size)
@@ -891,7 +893,6 @@ tfile_fetch_registers (struct target_ops *ops,
regcache_raw_supply (regcache, regn, regs + offset);
}
}
- offset += regsize;
}
}
else
--
2.7.0
next prev parent reply other threads:[~2016-02-10 14:12 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-06 15:39 [PATCH 0/4] Save target description in tfile Marcin Kościelnicki
2016-02-06 15:39 ` [PATCH 1/4] gdb.trace: Save XML " Marcin Kościelnicki
2016-02-10 13:02 ` Pedro Alves
2016-02-10 20:18 ` [PATCH 1/3] " Marcin Kościelnicki
2016-02-10 22:20 ` Pedro Alves
2016-02-10 22:35 ` Marcin Kościelnicki
2016-02-11 19:02 ` Simon Marchi
2016-02-11 21:28 ` Sergio Durigan Junior
2016-02-11 22:31 ` Marcin Kościelnicki
2016-02-11 22:56 ` [PATCH] gdb: Fix build failure in xml-tdesc.c without expat Marcin Kościelnicki
2016-02-12 10:06 ` Pedro Alves
2016-02-12 10:10 ` Marcin Kościelnicki
2016-02-12 10:19 ` Pedro Alves
2016-02-12 10:21 ` Marcin Kościelnicki
2016-02-06 15:39 ` [PATCH 3/4] gdb.trace: Use g packet order in tfile_fetch_registers Marcin Kościelnicki
2016-02-10 13:20 ` Pedro Alves
2016-02-10 13:21 ` Marcin Kościelnicki
2016-02-10 13:54 ` Pedro Alves
2016-02-10 14:12 ` Marcin Kościelnicki [this message]
2016-02-10 14:21 ` [PATCH] " Pedro Alves
2016-02-10 14:49 ` Marcin Kościelnicki
2016-02-06 15:39 ` [PATCH 2/4] gdb.trace: Read XML target description from tfile Marcin Kościelnicki
2016-02-10 13:02 ` Pedro Alves
2016-02-10 20:19 ` [PATCH 2/3] " Marcin Kościelnicki
2016-02-10 22:20 ` Pedro Alves
2016-02-10 22:35 ` Marcin Kościelnicki
2016-02-06 15:47 ` [PATCH 4/4] gdb.trace: Fix off-by-one in tfile_fetch_registers Marcin Kościelnicki
2016-02-10 13:22 ` Pedro Alves
2016-02-10 13:53 ` Marcin Kościelnicki
2016-02-06 20:54 ` [PATCH 5/6] gdb/x86: Implement ax_pseudo_register_collect hook Marcin Kościelnicki
2016-02-06 20:54 ` [PATCH 6/6] gdb.trace: Add a testcase for tdesc in tfile Marcin Kościelnicki
2016-02-10 13:50 ` Pedro Alves
2016-02-11 10:14 ` [PATCH] " Marcin Kościelnicki
2016-02-11 13:00 ` Pedro Alves
2016-02-11 14:17 ` Marcin Kościelnicki
2016-02-12 18:32 ` Antoine Tremblay
2016-02-12 18:40 ` Marcin Kościelnicki
2016-02-12 18:49 ` Antoine Tremblay
2016-02-12 18:53 ` Marcin Kościelnicki
2016-02-12 18:57 ` Antoine Tremblay
2016-02-12 19:47 ` [PATCH] gdb.trace/tfile-avx.c: Change ymm15 to xmm15 for old gcc Marcin Kościelnicki
2016-02-12 19:57 ` Pedro Alves
2016-02-12 21:34 ` Marcin Kościelnicki
2016-02-10 13:31 ` [PATCH 5/6] gdb/x86: Implement ax_pseudo_register_collect hook Pedro Alves
2016-02-10 13:34 ` Marcin Kościelnicki
2016-02-10 13:50 ` Pedro Alves
2016-02-10 14:27 ` [PATCH] " Marcin Kościelnicki
2016-02-10 14:28 ` Pedro Alves
2016-02-10 14:49 ` Marcin Kościelnicki
2016-02-10 14:24 ` [PATCH 0/4] Save target description in tfile Pedro Alves
2016-02-10 14:25 ` Marcin Kościelnicki
2016-02-10 20:19 ` [PATCH 3/3] gdb/doc: Add documentation for tfile description section lines Marcin Kościelnicki
2016-02-10 22:20 ` Pedro Alves
2016-02-17 9:50 ` Marcin Kościelnicki
2016-02-17 15:37 ` Pedro Alves
2016-02-17 15:38 ` Pedro Alves
2016-02-17 15:59 ` Eli Zaretskii
2016-02-17 16:04 ` Marcin Kościelnicki
2016-02-17 16:05 ` Pedro Alves
2016-02-18 8:28 ` Marcin Kościelnicki
2016-02-11 17:36 ` [PATCH 0/4] Save target description in tfile Yao Qi
2016-02-12 1:49 ` Marcin Kościelnicki
2016-02-12 12:13 ` Yao Qi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1455113532-24235-1-git-send-email-koriakin@0x04.net \
--to=koriakin@0x04.net \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox