<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><br><br>I think the trace/3 and  dbg:tracer() method will helps. They can show us which method was called.<br><div><br><br><div></div><div id="divNeteaseMailCard"></div><br>At 2014-05-04 05:37:58,"Yves S. Garret" <yoursurrogategod@gmail.com> wrote:<br> <blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><div dir="ltr"><div><div><div><div>Hello,<br><br></div>Recently I've started a book called "Handbook of Neuroevolution through Erlang".  I love the book.  However, when it comes to wrapping my head about the nuts and bolts of the code written in the book, I'm finding this to be a rather difficult thing to do.<br>
<br>Basically, when I start up the project, I get about 10+ processes running.  It's rather difficult for me to visualize in my head how they all communicate and get along.  There are a lot of questions in my head along the lines of "If I wanted to change this input from an integer to an atom, would the app choke?  Where would it fail?  Why would it fail?".  When you're writing an app with just one thread, this is -- comparatively -- easier to take apart.  However, when you have multiple processes, the task seems to be exponentially increasing in complexity.<br>
<br></div>My question is this:  What strategies and tools do you use to look at existing code and figure out how it works?<br><br></div>Secondly, I'm not terribly happy with the existing debugger in Erlang and would love to know more about how the Erlang VM works.  What source should I look into?  I've heard of a specific book, is it Joe Armstrong's Programming Erlang?  I'm obviously new to the VM and would like to gain understanding of how it works over time.<br>
<br>Thanks in advance,<br></div>--Yves<br></div>
</blockquote></div></div>