* [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses
@ 2009-01-07 12:27 Joel Brobecker
2009-01-07 13:15 ` [patch] Reading coff-pe-read files Kai Tietz
2009-01-09 11:09 ` [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses Joel Brobecker
0 siblings, 2 replies; 4+ messages in thread
From: Joel Brobecker @ 2009-01-07 12:27 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 451 bytes --]
Similar to what I did in gdbarch.sh/gdbarch.c, this patch uses
host_address_to_string to transform addresses into strings, rather
than printing them as longs...
2009-01-07 Joel Brobecker <brobecker@adacore.com>
* arch-utils.c (gdbarch_update_p): Use host_address_to_string
to print the address of the gdbarch pointer.
Tested on x86-linux. Will commit at the same time as the gdbarch.sh
patch if there are no objections.
--
Joel
[-- Attachment #2: arch-utils.diff --]
[-- Type: text/plain, Size: 995 bytes --]
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 41c4933..c1ea9da 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -495,8 +495,8 @@ gdbarch_update_p (struct gdbarch_info info)
{
if (gdbarch_debug)
fprintf_unfiltered (gdb_stdlog, "gdbarch_update_p: "
- "Architecture 0x%08lx (%s) unchanged\n",
- (long) new_gdbarch,
+ "Architecture %s (%s) unchanged\n",
+ host_address_to_string (new_gdbarch),
gdbarch_bfd_arch_info (new_gdbarch)->printable_name);
return 1;
}
@@ -504,8 +504,8 @@ gdbarch_update_p (struct gdbarch_info info)
/* It's a new architecture, swap it in. */
if (gdbarch_debug)
fprintf_unfiltered (gdb_stdlog, "gdbarch_update_p: "
- "New architecture 0x%08lx (%s) selected\n",
- (long) new_gdbarch,
+ "New architecture %s (%s) selected\n",
+ host_address_to_string (new_gdbarch),
gdbarch_bfd_arch_info (new_gdbarch)->printable_name);
deprecated_current_gdbarch_select_hack (new_gdbarch);
^ permalink raw reply [flat|nested] 4+ messages in thread* [patch] Reading coff-pe-read files
2009-01-07 12:27 [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses Joel Brobecker
@ 2009-01-07 13:15 ` Kai Tietz
2009-01-07 13:54 ` Pierre Muller
2009-01-09 11:09 ` [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses Joel Brobecker
1 sibling, 1 reply; 4+ messages in thread
From: Kai Tietz @ 2009-01-07 13:15 UTC (permalink / raw)
To: Joel Brobecker; +Cc: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]
Hi,
One small piece for x86_64 windows support in coff-pe-read.c seems to be
missing. In function read_pe_exported_syms wrong indexes are used to find
exports of the image.
The source uses here the same pattern as in bfd/pe-dll.c.
ChangeLog
2009-01-07 Kai Tietz <kai.tietz@onevision.com>
* coff-pe-read.c (read_pe_exported_syms): Enable read of PE+
export directory.
I am uncertain, which macro I should use here (or if it would be better to
make for PE+ a copy of this file), so I used _WIN64 as condition.
Cheers,
Kai
PS: I have already papers ready with FSF for gdb, so there shouldn't be
any problem about taking parts of my donated code, I've provided to Joel
IMHO.
| (\_/) This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.
[-- Attachment #2: pe-coff-read.diff --]
[-- Type: application/octet-stream, Size: 1503 bytes --]
Index: src/gdb/coff-pe-read.c
===================================================================
--- src.orig/gdb/coff-pe-read.c
+++ src/gdb/coff-pe-read.c
@@ -205,7 +205,10 @@ read_pe_exported_syms (struct objfile *o
char const *target = bfd_get_target (objfile->obfd);
- if ((strcmp (target, "pe-i386") != 0) && (strcmp (target, "pei-i386") != 0))
+ if ((strcmp (target, "pe-i386") != 0)
+ && (strcmp (target, "pei-i386") != 0)
+ && (strcmp (target, "pe-x86-64") != 0)
+ && (strcmp (target, "pei-x86-64") != 0))
{
/* This is not an i386 format file. Abort now, because the code
is untested on anything else. *FIXME* test on further
@@ -216,15 +219,24 @@ read_pe_exported_syms (struct objfile *o
/* Get pe_header, optional header and numbers of export entries. */
pe_header_offset = pe_get32 (dll, 0x3c);
opthdr_ofs = pe_header_offset + 4 + 20;
+#ifdef _WIN64
+ num_entries = pe_get32 (dll, opthdr_ofs + 92 + 16);
+#else
num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#endif
if (num_entries < 1) /* No exports. */
{
return;
}
+#ifdef _WIN64
+ export_rva = pe_get32 (dll, opthdr_ofs + 96 + 16);
+ export_size = pe_get32 (dll, opthdr_ofs + 100 + 16);
+#else
export_rva = pe_get32 (dll, opthdr_ofs + 96);
export_size = pe_get32 (dll, opthdr_ofs + 100);
+#endif
nsections = pe_get16 (dll, pe_header_offset + 4 + 2);
secptr = (pe_header_offset + 4 + 20 +
pe_get16 (dll, pe_header_offset + 4 + 16));
^ permalink raw reply [flat|nested] 4+ messages in thread* RE: [patch] Reading coff-pe-read files
2009-01-07 13:15 ` [patch] Reading coff-pe-read files Kai Tietz
@ 2009-01-07 13:54 ` Pierre Muller
0 siblings, 0 replies; 4+ messages in thread
From: Pierre Muller @ 2009-01-07 13:54 UTC (permalink / raw)
To: 'Kai Tietz', 'Joel Brobecker'; +Cc: gdb-patches
Should this be transformed so that we can also
correctly cross-read 64-bit PE files
on 32-bit and vice-versa?
Possibly by defining an extra offset
that would be set to 16 if target is "pe-x86-64" or "pei-x86-64"
and to zero otherwise?
Pierre Muller
Pascal language support maintainer for GDB
> -----Message d'origine-----
> De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Kai Tietz
> Envoyé : Wednesday, January 07, 2009 2:15 PM
> À : Joel Brobecker
> Cc : gdb-patches@sourceware.org
> Objet : [patch] Reading coff-pe-read files
>
> Hi,
>
> One small piece for x86_64 windows support in coff-pe-read.c seems to
> be missing. In function read_pe_exported_syms wrong indexes are used to
> find exports of the image.
> The source uses here the same pattern as in bfd/pe-dll.c.
>
> ChangeLog
>
> 2009-01-07 Kai Tietz <kai.tietz@onevision.com>
>
> * coff-pe-read.c (read_pe_exported_syms): Enable read of PE+
> export directory.
>
>
> I am uncertain, which macro I should use here (or if it would be better
> to
> make for PE+ a copy of this file), so I used _WIN64 as condition.
>
> Cheers,
> Kai
>
> PS: I have already papers ready with FSF for gdb, so there shouldn't be
> any problem about taking parts of my donated code, I've provided to
> Joel
> IMHO.
>
>
>
> | (\_/) This is Bunny. Copy and paste Bunny
> | (='.'=) into your signature to help him gain
> | (")_(") world domination.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses
2009-01-07 12:27 [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses Joel Brobecker
2009-01-07 13:15 ` [patch] Reading coff-pe-read files Kai Tietz
@ 2009-01-09 11:09 ` Joel Brobecker
1 sibling, 0 replies; 4+ messages in thread
From: Joel Brobecker @ 2009-01-09 11:09 UTC (permalink / raw)
To: gdb-patches
> 2009-01-07 Joel Brobecker <brobecker@adacore.com>
>
> * arch-utils.c (gdbarch_update_p): Use host_address_to_string
> to print the address of the gdbarch pointer.
Checked in as well...
--
Joel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-01-09 11:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-07 12:27 [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses Joel Brobecker
2009-01-07 13:15 ` [patch] Reading coff-pe-read files Kai Tietz
2009-01-07 13:54 ` Pierre Muller
2009-01-09 11:09 ` [RFA/commit] arch-utils.c: Use host_address_to_string when printing function addresses Joel Brobecker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox