On Sun, May 22, 2011 at 23:21, FX <fxcoud...@gmail.com> wrote:
> Dear Janne,
>
> Sorry I'm a bit late on this, but since async-signal-safe code is so hard to 
> get right (at least for me), I wanted to help review your new code. It's very 
> nice to have this instead of my initial ugly implementation, and I have only 
> spotted on issue: AFAICT, execvp() is not safe to use here; only execle() and 
> execve() are.

Ah, good catch! That's a bit of a bummer though, since the nice thing
about execvp() is that it searches the path for the executable, so
it'll work even if the user has addr2line installed somewhere else
than /usr/bin. For execve(), one needs to provide an absolute path.

One solution could be to search the PATH for addr2line during library
initialization (where we don't need to be async-signal-safe), and then
store it somewhere and use it in show_backtrace().

-- 
Janne Blomqvist

Reply via email to