Issue with Latest GDB on AIX with GCC-6.12

David Edelsohn dje.gcc@gmail.com
Thu Feb 9 15:50:00 GMT 2017


On Thu, Feb 9, 2017 at 7:15 AM, Nitish Kumar Mishra
<mishra.nitish.88@gmail.com> wrote:
> Hi all,
> While sending the previous mail the statements got broken.
> I am not sure if it is understandable. So, trying again :)
>
> 1. GDB with GCC-4.8.5, 32 bit mode, with or without static
>     options : NOT WORKING.
> 2. GDB with GCC-4.8.5, 64 bit mode, with or without static
>     options : WORKING FINE

Okay.  This is why I was confused about GCC 4.8.5.  I don't have any
immediate intuition why 64 bit mode would have an effect on GCC.  To
me this implies a subtle AIX linker issue.  I have experienced AIX ld
behaving differently in 32 bit mode and 64 bit mode.

> 3. GDB with GCC-6.1, 64 bit mode, with static options : NOT WORKING
> 4. GDB with GCC-6.1, 64 bit mode, without static options : COMPILATION ERROR.
>
> P.S.: Static options means: -static-libstdc++ -static-libgcc

What is the compilation error?

Does GCC 4.8.5 and GCC 6.1 fail in the same manner?  Neither catch the
exception?

GCC EH on AIX was improved (for GCC 6) to place EH tables in the
read-only section so that they could be shared and not bloat the data
section. This also changed the data encoding. But this change should
not have affected the algorithm to find an exception handler.

If it fails for both GCC 4.8 and GCC 6.1, that implies the problem is
not a recent GCC change.

It's possible that there is something wrong with the GCC code and it
accidentally works sometime, or it's possible that there is some bad
interaction between GCC and the AIX linker (like relocations or
ordering of symbols).

Because of the limited GDB functionality on AIX, debugging is
difficult. We need some more information about exactly why the EH
walker is failing to find the relevant EH frame.  What is wrong with
the table in the executable or in memory?

Thanks, David



More information about the Gdb mailing list