On Tue, 14 Jun 2011, Sebastian Reitenbach wrote:

> what I'm trying to solve is that when there is no backtrace() available on 
> the system, then gnustep-base tries to roll sth. on its own, where it then 
> just make the application "hang". This is used in the exception handling. I 
> want to port a sudoku generator/game which makes use of exception handling, 
> when generating the sudoku.
> Letting gnustep-base use its hand-rolled backtrace generation, then it hangs. 
> Then I tried to use backtrace() from libexecinfo, and it crashes. Now Stuart 
> pointed me to the libbacktrace, and also there, it crashes. With 
> libbacktrace, the crash seems to be very similar to the one seen in 
> libexecinfo, crashing when calling __builtin_return_address() with a frame 
> larger than the number of frames available. I don't know whether this is a 
> problem in the gcc __builtin_return_address(), or with gnustep-base calling 
> backtrace. But as far as I can see from the manual of backtrace(), 
> gnustep-base seems to be correct.
> 
> I tried this sudoku game on Linux, with using backtrace() from glibc, and 
> with using the gnustep-based hand rolled variant to get a backtrace. Both 
> work there, and right now I don't know who is at fault, and what/how to fix 
> it.
> The thing I got it to work on OpenBSD was a: link against libexecinfo, and 
> use the patch to libexecinfo I sent earlier Today, and b: use the 
> gnustep-based hand rolled version of stack trace generation, but disable it 
> to not generate a backtrace. If I don't find a working solution to get it to 
> work with a backtrace, then I'll probably disable the backtrace generation in 
> gnustep-base, since its not that important feature I think...

Which makes me wonder if libexecinfo does work at all...

-- 
Antoine

Reply via email to