Re: Issue with Latest GDB on AIX with GCC-6.12
David Edelsohn <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CAGWvnyn_wHjeUOuj=3E+wokBCCRhd+ZiYPbXTQO+3N_d_kPYWg@mail.gmail.com> |
On Thu, Feb 9, 2017 at 7:15 AM, Nitish Kumar Mishra <[email protected]> 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