This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [RFC-v5] Fix .text section offset for windows DLL (was Calling __stdcall functions in the inferior)
- From: "Pierre Muller" <pierre dot muller at ics-cnrs dot unistra dot fr>
- To: "'asmwarrior'" <asmwarrior at gmail dot com>
- Cc: "'Joel Brobecker'" <brobecker at adacore dot com>, "'Eli Zaretskii'" <eliz at gnu dot org>, <gdb-patches at sourceware dot org>
- Date: Fri, 7 Dec 2012 17:27:13 +0100
- Subject: RE: [RFC-v5] Fix .text section offset for windows DLL (was Calling __stdcall functions in the inferior)
- References: <20121024194517.GK3555@adacore.com> <011901cdb2ab$48076b90$d81642b0$@muller@ics-cnrs.unistra.fr> <20121105171121.GA2972@adacore.com> <50991f5f.8382440a.1100.ffff82abSMTPIN_ADDED@mx.google.com> <509ABA17.30507@redhat.com> <000301cdbd96$f5cd9f10$e168dd30$@muller@ics-cnrs.unistra.fr> <20121122173019.GF9964@adacore.com> <15690.5992342674$1353883881@news.gmane.org> <87624si9ur.fsf@fleche.redhat.com> <001501cdccaf$ad85e9b0$0891bd10$@muller@ics-cnrs.unistra.fr> <20121207071035.GG31477@adacore.com> <50C20A66.70002@gmail.com> <29545.4593528577$1354894901@news.gmane.org> <50C21696.7040006@gmail.com>
> -----Message d'origine-----
> De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de asmwarrior
> Envoyà : vendredi 7 dÃcembre 2012 17:17
> Ã : Pierre Muller
> Cc : 'Joel Brobecker'; 'Eli Zaretskii'; gdb-patches@sourceware.org
> Objet : Re: [RFC-v5] Fix .text section offset for windows DLL (was Calling
> __stdcall functions in the inferior)
>
> On 2012-12-7 23:40, Pierre Muller wrote:
> > Hi Yuanhui,
> > thanks for trying to debug this...
> >
> > First, concerning the optimized out problems,
> > it would be easier if you would recompile
> > GDB without optimization:
> >
> > make clean all CFLAGS="-gdwarf-2 -O0"
> >
> > After that, you should get optimized out variables...
>
> I will did this if I have more time.
>
>
> >
> > I also installed CodeBlocks to test if I can reproduce your crash,
> > but I never got any ...
>
> The codeblocks.exe was built myself, which has debug information in it.
I tried to recompile the sources, but
compilation fails on not found wxWorks headers...
Despite the fact that I compiled wxWorks 2.9.4 without problems.
> >
> > Could it be that some weird DLL's have unnamed
> > sections?
> > Could you try to insert
> > if (sections[i] && section[i].name)
> > before
> >> if (strcmp (sections[i].section_name, section_name) == 0)
> >> return i;
> > to confirm that the problem originates here?
> >
>
> I add a line:
> static int
> get_pe_section_index (const char *section_name,
> struct read_pe_section_data *sections,
> int nb_sections)
> {
> int i;
> for (i = 0; i < nb_sections; i++)
> if (section_name && (§ions[i]) && sections[i].section_name)
> if (strcmp (sections[i].section_name, section_name) == 0)
> return i;
> return PE_SECTION_INDEX_INVALID;
> }
>
>
> But still the same crash in strcmp().
Could you try to check that section_name ansd sections array are valid...
It will probably require that you recompile GDB :(
At the crash point, try to go back to
get_pe_section_index frame and do
(gdb) print section_name
(gdb) print i
...
(gdb) print *sections@nb_index
This should print the whole array.
The problem might also come from some memory corruption elsewhere in my code...
Thanks for helping,
Pierre