Iavor Diatchki | 12 Nov 02:24 2012
Picon

How to use `trace` while debuging GHC

Hello,


While working on GHC sometimes I find it useful to dump the values of intermediate expressions, perhaps in the middle of pure code, using a combination of `trace` and `ppr`.  The issue is that `ppr` returns an `SDoc`, and to turn an `SDoc` into a `String`, I need some `DynFlags`.

There used to be a value called `tracingDynFlags` that I could use to dump values, but it has disappeared...  Did it get moved somewhere, or is there a better way to get the same effect?

-Iavor
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users <at> haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Ian Lynagh | 12 Nov 02:36 2012

Re: How to use `trace` while debuging GHC

On Sun, Nov 11, 2012 at 05:24:06PM -0800, Iavor Diatchki wrote:
> 
> There used to be a value called `tracingDynFlags` that I could use to dump
> values, but it has disappeared...  Did it get moved somewhere, or is there
> a better way to get the same effect?

There is now StaticFlags.unsafeGlobalDynFlags.

Thanks
Ian
Richard Eisenberg | 12 Nov 05:15 2012

Re: How to use `trace` while debuging GHC

I've recently used the conveniently-typed (pprTrace :: String -> SDoc -> a -> a) for this purpose. You have
to compile with -DDEBUG, but it works great.

Richard

On Nov 11, 2012, at 8:36 PM, Ian Lynagh <ian <at> well-typed.com> wrote:

> On Sun, Nov 11, 2012 at 05:24:06PM -0800, Iavor Diatchki wrote:
>> 
>> There used to be a value called `tracingDynFlags` that I could use to dump
>> values, but it has disappeared...  Did it get moved somewhere, or is there
>> a better way to get the same effect?
> 
> There is now StaticFlags.unsafeGlobalDynFlags.
> 
> 
> Thanks
> Ian
> 
> 
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users <at> haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Michal Terepeta | 12 Nov 10:09 2012
Picon

Re: How to use `trace` while debuging GHC

On Mon, Nov 12, 2012 at 5:15 AM, Richard Eisenberg <eir <at> cis.upenn.edu> wrote:
>
> I've recently used the conveniently-typed (pprTrace :: String -> SDoc -> a -> a) for this purpose. You have to compile with -DDEBUG, but it works great.
>
> Richard

To use pprTrace you don't actually need to compile with -DDEBUG, it only checks if -dno-debug-output has been specified on the command line:
http://www.haskell.org/ghc/docs/latest/html/libraries/ghc/src/Outputable.html#pprTrace
http://www.haskell.org/ghc/docs/latest/html/libraries/ghc/src/StaticFlags.html#opt_NoDebugOutput


Cheers,
Michal
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users <at> haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Gmane