Stefan's last point is the key one. GHC compiles into code that doesn't use 
call/return instructions.  Instead, it pushes explicit return addresses, and 
returns by doing an indirect jump.  I bet this isn't what your tool expects.

Simon

| -----Original Message-----
| From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
| Behalf Of Stefan O'Rear
| Sent: 04 October 2007 01:15
| To: Ganesh Narayan
| Cc: [email protected]
| Subject: Re: [Haskell] Haskell Applications - reg
|
| On Thu, Oct 04, 2007 at 05:32:31AM +0530, Ganesh Narayan wrote:
| > [1] Am presently constructing the call graphs from disassembled application
| > binaries; resultant graph includes ghc runtime library calls.
|
| Not necessary a good idea - Haskell's purity gives the compilers great
| license to reorder and rearrange code, and the laziness causes the
| dynamic call graph to differ wildly from the static call graph even
| without without optimizations.  GHC's use of a private stack with very
| weird return conventions probably isn't helping either!
|
| Stefan
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to