Re: How to debug null-pointer function call within __do_global_dtors_aux()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



William Tambe <tambewilliam@xxxxxxxxx> writes:
> I am running into an issue with both gcc-8.3.0 and gcc-9.2.0 where a
> null-pointer function call is being done within
> __do_global_dtors_aux() which is defined in crtstuff.c .
>
> I have attempted to build GCC using the following export:
> export CFLAGS_FOR_TARGET="-g -save-temps -fverbose-asm"
> but the assembly file crtstuff.s do not contain the function
> __do_global_dtors_aux() even-though its source file crtstuff.c has its
> definition.
>
> Any idea ?

libgcc is a bit awkward in that it uses the same source file to
compile multiple object files.  E.g. both crtbegin.o and crtend.o
come from crtstuff.c, so which crtstuff.s you end up with depends
on the build order.

You should see the definition if you remake crtbegin.o specifically
(or whichever variant you're looking at, such as crtbeginT.o).

At a guess, the null pointers could come from weak symbols that
weren't defined weak (and so a null check got optimised away),
or from the function pointer table sections have too much alignment
and being padded out with zeros.

Thanks,
Richard



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux