[erlang-questions] how can I debug errors in linked-in drivers or nif loaded as shared library?

Kevin A. Smith kevin@REDACTED
Fri Dec 24 14:59:56 CET 2010


I've edited the erl script which comes with the standard Erlang release to allow easy use of GDB for just such situations:

if [ ! -z "$USE_GDB" ]; then
gdb $BINDIR/erlexec --args $BINDIR/erlexec ${1+"$@"}
else
exec $BINDIR/erlexec ${1+"$@"}
fi

#exec $BINDIR/erlexec ${1+"$@"}

Define the env var "USE_GDB" before launching Erlang and you'll get a debugger prompt when your NIF/driver crashes. GDB's backtrace command is especially helpful :-)

Credit to Dave Smith @ Basho for originally suggesting this approach.

--Kevin

On Dec 24, 2010, at 4:09 AM, caox wrote:

> hi
> 
> 	I got a segmentation fault and a core.dump file when tested my linked-in driver. How could I debug it with gdb?
> 	For an executable c file, we can just call 'gdb a.out core.dump'. How can I do this for a .so file loaded by erlang?
>        Thanks.
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
> 



More information about the erlang-questions mailing list