From 7068f60cc7aefef514f02d5927d5abbdcd5c94d4 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 21 Oct 2009 12:52:40 +0000 Subject: [PATCH] GhciMonad.resume should restore the program's argv and progname I discovered that single-stepping over getArgs gave the wrong answer sometimes, because we were forgetting to set the program's argv and progname when resuming at a breakpoint. Test is ghci.debugger/scripts/getargs.script. --- ghc/GhciMonad.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ghc/GhciMonad.hs b/ghc/GhciMonad.hs index 0b9239d..94bd9c2 100644 --- a/ghc/GhciMonad.hs +++ b/ghc/GhciMonad.hs @@ -258,7 +258,13 @@ runStmt expr step = do GHC.runStmt expr step resume :: (SrcSpan -> Bool) -> GHC.SingleStep -> GHCi GHC.RunResult -resume canLogSpan step = GHC.resume canLogSpan step +resume canLogSpan step = do + st <- getGHCiState + reifyGHCi $ \x -> + withProgName (progname st) $ + withArgs (args st) $ + reflectGHCi x $ do + GHC.resume canLogSpan step -- -------------------------------------------------------------------------- -- timing & statistics -- 1.7.10.4