[erlang-questions] Debugging c code when interoperating with erlang

Richard Evans richardprideauxevans@REDACTED
Tue Jun 14 13:13:36 CEST 2011


I have a c program which interoperates with erlang, following the guidelines
described in Joe Armstrong's book and in the erlang docs:
http://www.erlang.org/doc/tutorial/c_port.html#id56436

Everything works nicely, but I sometimes have problems debugging the c
code.

Specifically: if I attach the debugger to the c process, with breakpoints
*already* added, then I can debug the c code fine. But if I attach the
debugger to the c process, and *then* add extra breakpoints, this causes the
erlang calling code to break.

It gives the error:
** exception error: bad argument
     in function  server:call_port/1

The call_port function is the standard one:

   call_port(Msg) ->

    server ! {call, self(), Msg},

    receive

        {server, Result} ->

            Result
    end.

Do you guys know why this would happen? (I am using Xcode 4.0, Mac OSX 10.6,
Erlang R14B01).

A further question: if my c code crashes, the erlang node hangs; I have to
run again to reproduce the problem. Is it possible to get the erlang node to
print out a dump or anything?

thanks,
Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110614/1b41edf8/attachment.htm>


More information about the erlang-questions mailing list