Skip to content
Snippets Groups Projects
Commit d3d53c1a authored by Matthew Pickering's avatar Matthew Pickering
Browse files

Clean-up unused code from Dominator/Reverse analysis

These modes are no longer supported because they used too much memory.
parent b1e8bb0d
No related branches found
No related tags found
1 merge request!23tui: Command Picker and some other clean-up improvements
...@@ -85,7 +85,7 @@ myAppDraw (AppState majorState' _) = ...@@ -85,7 +85,7 @@ myAppDraw (AppState majorState' _) =
, withAttr menuAttr $ vLimit 1 $ hBox [txt "(p): Pause | (ESC): Exit", fill ' '] , withAttr menuAttr $ vLimit 1 $ hBox [txt "(p): Pause | (ESC): Exit", fill ' ']
]] ]]
(PausedMode os@(OperationalState _ treeMode' kbmode fmode _ro _dtree _ _hg _)) -> let (PausedMode os@(OperationalState _ treeMode' kbmode fmode _ _ _)) -> let
in kbOverlay kbmode $ [mainBorder "ghc-debug - Paused" $ vBox in kbOverlay kbmode $ [mainBorder "ghc-debug - Paused" $ vBox
[ -- Current closure details [ -- Current closure details
joinBorders $ borderWithLabel (txt "Closure Details") $ joinBorders $ borderWithLabel (txt "Closure Details") $
...@@ -95,7 +95,6 @@ myAppDraw (AppState majorState' _) = ...@@ -95,7 +95,6 @@ myAppDraw (AppState majorState' _) =
, -- Tree , -- Tree
joinBorders $ borderWithLabel joinBorders $ borderWithLabel
(txt $ case treeMode' of (txt $ case treeMode' of
Dominator -> "Dominator Tree"
SavedAndGCRoots -> "Root Closures" SavedAndGCRoots -> "Root Closures"
Retainer {} -> "Retainers" Retainer {} -> "Retainers"
Searched {} -> "Search Results" Searched {} -> "Search Results"
...@@ -273,7 +272,6 @@ myAppHandleEvent brickEvent = do ...@@ -273,7 +272,6 @@ myAppHandleEvent brickEvent = do
-- Pause the debuggee -- Pause the debuggee
VtyEvent (Vty.EvKey (KChar 'p') []) -> do VtyEvent (Vty.EvKey (KChar 'p') []) -> do
liftIO $ pause debuggee' liftIO $ pause debuggee'
-- _ <- liftIO $ initialiseViews
(rootsTree, initRoots) <- liftIO $ mkSavedAndGCRootsIOTree Nothing (rootsTree, initRoots) <- liftIO $ mkSavedAndGCRootsIOTree Nothing
put (appState & majorState . mode .~ put (appState & majorState . mode .~
PausedMode PausedMode
...@@ -282,9 +280,7 @@ myAppHandleEvent brickEvent = do ...@@ -282,9 +280,7 @@ myAppHandleEvent brickEvent = do
KeybindingsHidden KeybindingsHidden
FooterInfo FooterInfo
(DefaultRoots initRoots) (DefaultRoots initRoots)
Nothing
rootsTree rootsTree
Nothing
eventChan )) eventChan ))
...@@ -315,29 +311,6 @@ myAppHandleEvent brickEvent = do ...@@ -315,29 +311,6 @@ myAppHandleEvent brickEvent = do
where where
-- This is really slow on big heaps, needs to be made more efficient
-- or some progress/timeout indicator
{-
mkDominatorTreeIO hg = forkIO $ do
!analysis <- runAnalysis debuggee' hg
!rootClosures' <- liftIO $ mapM (getClosureDetails debuggee' (Just analysis) "" <=< fillConstrDesc debuggee') =<< GD.dominatorRootClosures debuggee' analysis
let domIoTree = mkIOTree (Just analysis) rootClosures'
(getChildren analysis)
(List.sortOn (Ord.Down . _retainerSize))
writeBChan eventChan (DominatorTreeReady (DominatorAnalysis analysis domIoTree))
where
getChildren analysis _dbg c = do
cs <- closureDominatees debuggee' analysis c
fmap (("",)) <$> mapM (fillConstrDesc debuggee') cs
-}
-- mkReversalTreeIO hg = forkIO $ do
-- let !revg = mkReverseGraph hg
-- let revIoTree = mkIOTree Nothing [] (reverseClosureReferences hg revg) id
-- writeBChan eventChan (ReverseAnalysisReady (ReverseAnalysis revIoTree (lookupHeapGraph hg)))
mkSavedAndGCRootsIOTree manalysis = do mkSavedAndGCRootsIOTree manalysis = do
raw_roots <- take 1000 . map ("GC Roots",) <$> GD.rootClosures debuggee' raw_roots <- take 1000 . map ("GC Roots",) <$> GD.rootClosures debuggee'
...@@ -560,25 +533,11 @@ handleMain dbg e = do ...@@ -560,25 +533,11 @@ handleMain dbg e = do
handleMainWindowEvent :: Debuggee handleMainWindowEvent :: Debuggee
-> Handler () OperationalState -> Handler () OperationalState
handleMainWindowEvent _dbg brickEvent = do handleMainWindowEvent _dbg brickEvent = do
os@(OperationalState _ treeMode' _kbMode _footerMode _curRoots domTree rootsTree _hg _) <- get os@(OperationalState _ treeMode' _kbMode _footerMode _curRoots rootsTree _) <- get
case brickEvent of case brickEvent of
-- Change Modes -- Change Modes
VtyEvent (Vty.EvKey (KChar '?') []) -> put $ os & keybindingsMode .~ KeybindingsShown VtyEvent (Vty.EvKey (KChar '?') []) -> put $ os & keybindingsMode .~ KeybindingsShown
VtyEvent (Vty.EvKey (KChar 's') [Vty.MCtrl]) -> put $ os & treeMode .~ SavedAndGCRoots VtyEvent (Vty.EvKey (KChar 's') [Vty.MCtrl]) -> put $ os & treeMode .~ SavedAndGCRoots
VtyEvent (Vty.EvKey (KChar 't') [Vty.MCtrl])
-- Only switch if the dominator view is ready
| Just {} <- domTree -> put $ os & treeMode .~ Dominator
{- VtyEvent (Vty.EvKey (KFun 3) _)
-- Only switch if the reverse view is ready
| Just ra <- reverseA -> do
-- Get roots from rootTree and use those for the reverse view
let rs = getIOTreeRoots rootsTree
convert cd = cd & closure %~ do_one
do_one cd = fromJust (view convertPtr ra $ _closurePtr cd)
rs' = map convert rs
continue $ os & treeMode .~ Reverse
& treeReverse . _Just . reverseIOTree %~ setIOTreeRoots rs'
-}
VtyEvent (Vty.EvKey (KChar 'c') [Vty.MCtrl]) -> VtyEvent (Vty.EvKey (KChar 'c') [Vty.MCtrl]) ->
put $ os & footerMode .~ footerInput FSearch put $ os & footerMode .~ footerInput FSearch
...@@ -599,9 +558,6 @@ handleMainWindowEvent _dbg brickEvent = do ...@@ -599,9 +558,6 @@ handleMainWindowEvent _dbg brickEvent = do
-- Navigate the tree of closures -- Navigate the tree of closures
VtyEvent event -> case treeMode' of VtyEvent event -> case treeMode' of
Dominator -> do
newTree <- traverseOf (_Just . getDominatorTree) (handleIOTreeEvent event) domTree
put (os & treeDominator .~ newTree)
SavedAndGCRoots -> do SavedAndGCRoots -> do
newTree <- handleIOTreeEvent event rootsTree newTree <- handleIOTreeEvent event rootsTree
put (os & treeSavedAndGCRoots .~ newTree) put (os & treeSavedAndGCRoots .~ newTree)
......
...@@ -112,9 +112,7 @@ data ClosureDetails = ClosureDetails ...@@ -112,9 +112,7 @@ data ClosureDetails = ClosureDetails
| InfoDetails { _info :: InfoInfo } | InfoDetails { _info :: InfoInfo }
| LabelNode { _label :: Text } | LabelNode { _label :: Text }
data TreeMode = Dominator data TreeMode = SavedAndGCRoots
| SavedAndGCRoots
-- | Reverse
| Retainer (IOTree (ClosureDetails) Name) | Retainer (IOTree (ClosureDetails) Name)
| Searched (IOTree (ClosureDetails) Name) | Searched (IOTree (ClosureDetails) Name)
...@@ -155,30 +153,14 @@ data OperationalState = OperationalState ...@@ -155,30 +153,14 @@ data OperationalState = OperationalState
, _keybindingsMode :: KeybindingsMode , _keybindingsMode :: KeybindingsMode
, _footerMode :: FooterMode , _footerMode :: FooterMode
, _rootsFrom :: RootsOrigin , _rootsFrom :: RootsOrigin
, _treeDominator :: Maybe DominatorAnalysis
-- ^ Tree corresponding to Dominator mode
, _treeSavedAndGCRoots :: IOTree (ClosureDetails) Name , _treeSavedAndGCRoots :: IOTree (ClosureDetails) Name
-- ^ Tree corresponding to SavedAndGCRoots mode -- ^ Tree corresponding to SavedAndGCRoots mode
-- , _treeReverse :: Maybe ReverseAnalysis
-- ^ Tree corresponding to Dominator mode
, _heapGraph :: Maybe (HeapGraph Size)
-- ^ Raw heap graph
, _event_chan :: BChan Event , _event_chan :: BChan Event
} }
data DominatorAnalysis =
DominatorAnalysis { _getDominatorAnalysis :: Analysis
, _getDominatorTree :: IOTree (ClosureDetails) Name
}
--data ReverseAnalysis = ReverseAnalysis { _reverseIOTree :: IOTree (ClosureDetails SrtHI PapHI StackHI (Maybe HeapGraphIndex)) Name
-- , _convertPtr :: ClosurePtr -> Maybe (DebugClosure SrtHI PapHI ConstrDesc StackHI (Maybe HeapGraphIndex)) }
pauseModeTree :: (IOTree ClosureDetails Name -> r) -> OperationalState -> r pauseModeTree :: (IOTree ClosureDetails Name -> r) -> OperationalState -> r
pauseModeTree k (OperationalState _ mode _kb _footer _from dom roots _graph _) = case mode of pauseModeTree k (OperationalState _ mode _kb _footer _from roots _) = case mode of
Dominator -> k $ maybe (error "DOMINATOR-DavidE is not ready") _getDominatorTree dom
SavedAndGCRoots -> k roots SavedAndGCRoots -> k roots
-- Reverse -> k $ maybe (error "bop it, flip, reverse it, DavidE") _reverseIOTree reverseA
Retainer r -> k r Retainer r -> k r
Searched r -> k r Searched r -> k r
...@@ -188,4 +170,3 @@ makeLenses ''ClosureDetails ...@@ -188,4 +170,3 @@ makeLenses ''ClosureDetails
makeLenses ''ConnectedMode makeLenses ''ConnectedMode
makeLenses ''OperationalState makeLenses ''OperationalState
makeLenses ''SocketInfo makeLenses ''SocketInfo
makeLenses ''DominatorAnalysis
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment