[erlang-questions] Huge erl_crash.dump (2 gigs) - looking for advice

David Welton davidnwelton@REDACTED
Thu Jul 3 16:48:55 CEST 2014


> proc_heap section contains dump of process heap. I am not exactly sure about
> structure, but I think it is <memory address>:<type><type data>.
> Part of your dump:
>
> 7F1DCBACA878:lI39|H7F1DCBACA868
> 7F1DCBACA868:lI103|H7F1DCBACA858
> 7F1DCBACA858:lI115|H7F1DCBACA848
> 7F1DCBACA848:lI100|H7F1DCBACA838
> 7F1DCBACA838:lI95|H7F1DCBACA828
> 7F1DCBACA828:lI119|H7F1DCBACA818
> 7F1DCBACA818:lI101|H7F1DCBACA808
> 7F1DCBACA808:lI98|H7F1DCBACA7F8
> 7F1DCBACA7F8:lI64|H7F1DCBACA7E8
> 7F1DCBACA7E8:lI108|H7F1DCBACA7D8
> 7F1DCBACA7D8:lI111|H7F1DCBACA7C8
> 7F1DCBACA7C8:lI99|H7F1DCBACA7B8
> 7F1DCBACA7B8:lI97|H7F1DCBACA7A8
>
> Is part of some list. Type "l" is cons cell (basic construction item of
> lists), which contains tuple <value>:<next item>. Value is of type "I"
> (small integer - representing decimal character code), and next item is of
> type "H" - pointer to next data.
> Most simple way is to expect, that data forms list in order of memory cells
> (which is quite often). You can e.g. use this simple Perl code to get some
> idea about data (what error logger want to display):
>
> $ perl -n -e 'print chr($1) if($_ =~ /:lI([0-9]*)\|/)' < part_of_crash_dump
> 'gsd_web@REDACTED
>
> Where file "part_of_crash_dump" contains data from proc_heap section.
> I am sure there are more sophisticated tools to analyze crash dumps, but
> this can be used for the first sight.

Your explanation and Perl code were very useful.  I feel a bit like a
character one of those children's detective novels where they finally
crack the secret code:-)

'gsd_web@REDACTED' got a corrupted external term from
'xyz@REDACTED' on distribution channel 12877

That really narrows things down and I think ought to be enough to
solve our problem.  Thank you very much!
-- 
David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/



More information about the erlang-questions mailing list