From: Simon Marchi <simark@simark.ca>
To: Andreas Schwab <schwab@linux-m68k.org>,
Simon Marchi <simon.marchi@ericsson.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] Make target_read_alloc & al return vectors
Date: Sat, 07 Jul 2018 15:10:00 -0000 [thread overview]
Message-ID: <5ead66c6-e0cb-c9b6-b882-79c232cc389c@simark.ca> (raw)
In-Reply-To: <m2fu0vv32o.fsf@linux-m68k.org>
On 2018-07-07 04:54 AM, Andreas Schwab wrote:
> ../../gdb/ia64-tdep.c: In function âLONGEST getunwind_table(gdb_byte**)â:
> ../../gdb/ia64-tdep.c:2664:16: error: too many arguments to function âgdb::optional<std::vector<unsigned char, gdb::default_init_allocator<unsigned char, std::allocator<unsigned char> > > > target_read_alloc(target_ops*, target_object, const char*)â
> NULL, buf_p);
> ^
> In file included from ../../gdb/inferior.h:41:0,
> from ../../gdb/ia64-tdep.c:21:
> ../../gdb/target.h:341:40: note: declared here
> extern gdb::optional<gdb::byte_vector> target_read_alloc
> ^
> ../../gdb/ia64-tdep.c:2663:5: error: cannot convert âgdb::optional<std::vector<unsigned char, gdb::default_init_allocator<unsigned char, std::allocator<unsigned char> > > >â to âLONGEST {aka long int}â in assignment
> x = target_read_alloc (current_top_target (), TARGET_OBJECT_UNWIND_TABLE,
> ^
>
> Andreas.
>
Hi Andreas,
I have been unable to build libunwind for ia64 before (using the 1.2
branch), that's why I missed it. Now I tried to build the 1.1 and it
works fine.
I fixed up the call to target_read_alloc to the best of my knowledge,
with as little changes to the code as possible. However, I can't test
the result more than build it. Can you please review the patch below?
Just to confirm, do you also see errors later in the build, like:
In file included from /home/simark/src/binutils-gdb/gdb/ia64-libunwind-tdep.c:39:
/home/simark/src/binutils-gdb/gdb/ia64-libunwind-tdep.c:114:1: error: ISO C++ forbids converting a string constant to âchar*â [-Werror=write-strings]
static char *get_reg_name = STRINGIFY(UNW_OBJ(get_reg));
^~~~~~~~~~~~~~
/home/simark/src/binutils-gdb/gdb/common/preprocessor.h:28:25: note: in definition of macro âSTRINGIFY_1â
#define STRINGIFY_1(x) #x
^
?
----
From efd663c4d54b64f394d51faabc74f249d0bf32a7 Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>
Date: Sat, 7 Jul 2018 10:55:14 -0400
Subject: [PATCH] Fix compilation error in ia64-tdep.c with libunwind-ia64
Commit
9018be22e022 ("Make target_read_alloc & al return vectors")
failed to update the code in ia64-tdep.c, for HAVE_LIBUNWIND_IA64_H.
This patch fixes that.
gdb/ChangeLog:
* ia64-tdep.c (ktab_buf): New global.
(getunwind_table): Return a gdb::optional<gdb::byte_vector>.
(get_kernel_table): Adjust.
---
gdb/ia64-tdep.c | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 0df62e26ab39..2fab60c1d01e 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -69,6 +69,7 @@ struct ia64_table_entry
};
static struct ia64_table_entry *ktab = NULL;
+static gdb::optional<gdb::byte_vector> ktab_buf;
#endif
@@ -2647,11 +2648,9 @@ ia64_access_mem (unw_addr_space_t as,
}
/* Call low-level function to access the kernel unwind table. */
-static LONGEST
-getunwind_table (gdb_byte **buf_p)
+static gdb::optional<gdb::byte_vector>
+getunwind_table ()
{
- LONGEST x;
-
/* FIXME drow/2005-09-10: This code used to call
ia64_linux_xfer_unwind_table directly to fetch the unwind table
for the currently running ia64-linux kernel. That data should
@@ -2660,10 +2659,8 @@ getunwind_table (gdb_byte **buf_p)
we should find a way to override the corefile layer's
xfer_partial method. */
- x = target_read_alloc (current_top_target (), TARGET_OBJECT_UNWIND_TABLE,
- NULL, buf_p);
-
- return x;
+ return target_read_alloc (current_top_target (), TARGET_OBJECT_UNWIND_TABLE,
+ NULL);
}
/* Get the kernel unwind table. */
@@ -2674,15 +2671,12 @@ get_kernel_table (unw_word_t ip, unw_dyn_info_t *di)
if (!ktab)
{
- gdb_byte *ktab_buf;
- LONGEST size;
-
- size = getunwind_table (&ktab_buf);
- if (size <= 0)
+ ktab_buf = getunwind_table ();
+ if (!ktab_buf)
return -UNW_ENOINFO;
- ktab = (struct ia64_table_entry *) ktab_buf;
- ktab_size = size;
+ ktab = (struct ia64_table_entry *) ktab_buf->data ();
+ ktab_size = ktab_buf->size ();
for (etab = ktab; etab->start_offset; ++etab)
etab->info_offset += KERNEL_START;
--
2.18.0
next prev parent reply other threads:[~2018-07-07 15:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-22 4:03 Simon Marchi
2018-04-07 17:21 ` Simon Marchi
2018-04-16 20:04 ` Pedro Alves
2018-04-16 20:51 ` [pushed] linux_spu_make_corefile_notes: return note_data instead of nullptr (was: [PATCH] Make target_read_alloc & al return vectors) Simon Marchi
2018-07-07 8:54 ` [PATCH] Make target_read_alloc & al return vectors Andreas Schwab
2018-07-07 15:10 ` Simon Marchi [this message]
2018-07-07 15:17 ` Simon Marchi
2018-07-07 19:32 ` Andreas Schwab
2018-07-07 17:23 ` Andreas Schwab
2018-07-07 17:58 ` Simon Marchi
2018-07-07 18:24 ` Andreas Schwab
2018-07-16 18:02 ` Simon Marchi
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=5ead66c6-e0cb-c9b6-b882-79c232cc389c@simark.ca \
--to=simark@simark.ca \
--cc=gdb-patches@sourceware.org \
--cc=schwab@linux-m68k.org \
--cc=simon.marchi@ericsson.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).