[erlang-questions] How to read process's backtrace data?

skyman cloudzen@REDACTED
Sat Nov 10 10:53:31 CET 2012


Hi everyone,
erlang:process_display(Pid,backtrace) can display process's backtrace data. For example:
(foo@REDACTED)6> erlang:process_display(self(),backtrace).
Program counter: 0x00cf1498 (unknown function)
CP: 0x0245e8f8 (erl_eval:do_apply/6 + 208)


0x03b1fb34 Return addr 0x01b7f060 (shell:exprs/7 + 368)
y(0)     []
y(1)     none


0x03b1fb40 Return addr 0x01b7eb94 (shell:eval_exprs/7 + 80)
y(0)     []
y(1)     []
y(2)     cmd
y(3)     []
y(4)     {value,#Fun<shell.7.20862592>}
y(5)     {eval,#Fun<shell.24.20862592>}
y(6)     12305
y(7)     []
y(8)     []
y(9)     []


0x03b1fb6c Return addr 0x01b7e968 (shell:eval_loop/3 + 308)
y(0)     []
y(1)     []
y(2)     []
y(3)     []
y(4)     <0.30.0>
y(5)     Catch 0x01b7ec08 (shell:eval_exprs/7 + 196)


0x03b1fb88 Return addr 0x00a88f6c (<terminate process normally>)
y(0)     12305
y(1)     <0.30.0>
true

However, I don't know how to read the information above, such as what do "Program counter", Return addr", "+ 368" and "y(0) y(1) ..." mean? Can anyone teach me?
Thanks in advance!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121110/c119b18f/attachment.htm>


More information about the erlang-questions mailing list