Yup, my call graph constructor jst tracks statically resolved call instructions and splices them to get the whole program graph; no indirections. I could rewrite the tool, but tracking jmp *%eax would be tad too complicated! I'd try JHC meanwhile.
<br><br>Stefen, Simon and David, thanks again for the inputs.<br><br>-ganesh<br><br><div><span class="gmail_quote">On 10/5/07, <b class="gmail_sendername">David Menendez</b> &lt;<a href="mailto:dave@zednenem.com">dave@zednenem.com
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 10/4/07, Ganesh Narayan &lt;<a href="mailto:ganesh.narayan@gmail.com">
ganesh.narayan@gmail.com</a>&gt; wrote:<br>&gt; True,&nbsp;&nbsp;but I was of the opinion that -O0, -fno-state-hack and<br>&gt; -fno-full-laziness would preserve the calling structure with minimal<br>&gt; perturbance. Wouldn&#39;t it? Besides, I am hardly aware of any utility that
<br>&gt; generates source level call graph/expression dependence graph; suppose one<br>&gt; can generate a module dependency graph, but guess its little too coarse!<br><br>You might have more luck with JHC, which (if I understand correctly)
<br>creates intermediate C code that somewhat resembles the Haskell source<br>in structure.<br><br>--<br>Dave Menendez &lt;<a href="mailto:dave@zednenem.com">dave@zednenem.com</a>&gt;<br>&lt;<a href="http://www.eyrie.org/~zednenem/">
http://www.eyrie.org/~zednenem/</a>&gt;<br></blockquote></div><br>