On Wed, Sep 14, 2005 at 02:44:11PM +0100, Simon Marlow wrote: > On 10 September 2005 21:15, Frederik Eaton wrote: > > > On Fri, Sep 02, 2005 at 04:40:05PM +0400, Bulat Ziganshin wrote: > >> Hello Nils, > >> > >> Friday, September 02, 2005, 10:47:05 AM, you wrote: > >> > >>> Compile your program with -prof -auto-all (make sure you have > >>> the > >> > >>> I tried this out under GHC 6.4/Linux and got a segmentation fault > >>> instead of a stack trace. Under GHC 6.2.2 it seemed to work, though. > >> > >> this error is already fixed in current pre-6.4.1 version > > > > I'm using a 2005/9/3 version of 6.4.1 and running into situations > > where the "stack trace" has function A calling function B, where when > > I look at the code, A never calls B. Is this normal? Is it some > > side-effect of laziness? It sure makes the traces a lot less useful. > > It could be a bug - can you reduce the example and report it? > > GHC's profiler tries to overlay a lexical call graph on to the dynamic > execution of the program. It does this more or less in the way you > described before: every function gets an extra argument describing the > call context. However, there are some tricky areas: notably CAFs. We > don't as yet have a principled description of the mechanism, and I know > of various cases where odd results are obtained with the current system. > Also, the optimiser has to be careful not to change the shape of the > call graph, and I suspect there are cases where it goes wrong.
I see. Well, I'm afraid I've lost the example, but I'll keep my eyes open in case it happens again. It's good to know what the correct behavior is supposed to be. Frederik -- http://ofb.net/~frederik/ _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
