[Crash-utility] [PATCH] Use backtrace() instead of __builtin_return_address()
Bernhard Walle
bwalle at suse.de
Wed May 14 11:10:29 UTC 2008
* Dave Anderson [2008-05-13 15:36]:
>
> Bernhard Walle wrote:
> > When crash is compiled with gcc 4.3 and -O2, the __builtin_return_address()
> > causes crash to crash. See also [1] for a discussion about that.
>
> It appears that [1] only describes a problem if you ask for more frames
> than exist. Given the usage in crash, it's impossible to have a frame count
> of less than 4. So it must be some other bug, no?
Yes. I only referenced to that bug to state that the behaviour is
undefined, and it's not a gcc bug per definition.
However, I tried to track down the problem a bit. In a test program, I
encountered that when __builtin_frame_address(i) is zero, then the
program crashes when __builtin_frame_address(i+1) is executed.
However, changing that in crash doesn't help. It really crashes in
__builtin_return_address(1). Tracking that down is out of my knowledge.
I used the same compiler flags in crash and the test program.
Bernhard
More information about the Crash-utility
mailing list