- Apr 05, 2024
-
-
Matthew Pickering authored
-
- Apr 04, 2024
-
-
Hannes Siebenhandl authored
-
Hannes Siebenhandl authored
-
Hannes Siebenhandl authored
Adds colouring to the `CensusStats` for improved readability. It is now easier to find the appropriate values across lines. Omit package and module name from the item list view. The package name can easily be over 70 characters long, and are thus unreadable on most monitors any way. The header panel still shows all the information when hovering over the relevant list item, and the on-disk results are not affected. Additionally, homogeneous Arrays do no longer show all entires but show how many entries of the same closure type they contain. This reduces memory usage, but also the on-disk size of the two-level census results. To make this possible without parsing in various locations, we store structured information about each Closure Type Census while traversing the heap. In particular, we store the original `ConstrDesc` and put it into a single `Text`, where individual entries are split by ";". This avoids most overhead introduced by the additional data structures. At long last, we also switch to `Data.Text.IO` for writing the census results to disk. This seems to remove a memory spike when immediately writing the results to disk after a census.
-
- Apr 03, 2024
-
-
Hannes Siebenhandl authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
Previously exceptions on worker threads were swallowed and lead to a deadlock. Now an exception will kill the entire process.
-
Matthew Pickering authored
We also need to find all the RequestBlock requests and add those into the block cache, as well as the results of RequestAllBlocks.
-
- Apr 02, 2024
-
-
-
-
Matthew Pickering authored
-
- Mar 27, 2024
-
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
- Mar 21, 2024
-
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
- Mar 20, 2024
-
-
Matthew Pickering authored
-
Matthew Pickering authored
-
- Mar 04, 2024
-
-
Hannes Siebenhandl authored
Some Filters can't be reasonably applied if the debuggee is in the wrong profiling mode. For example, eras profiling requires the debuggee to be run with `-he`. We reflect this in ghc-debug-brick by disabling certain filters if their profiling mode requirements are not met.
-
Hannes Siebenhandl authored
-
Hannes Siebenhandl authored
-
Adds two new requests if the debuggee program has been compiled with profiling: * Request CCS_MAIN location * Dereference IndexTable Package `ghc-debug-client` adds utility functions to find CCSPtrs given a cost centre id, either including all transitive CCS children or only CCS parts that reference a specific cost centre. Add UI Filter to `ghc-debug-brick` allowing to list closures that have been allocated under a specific cost centre.
-
Hannes Siebenhandl authored
When thunks are evaluated, the thunk closure is replaced with an `IndClosure`. To make sure we don't miss parts of the string, we also expand `IndClosure` types.
-
- Feb 28, 2024
-
-
Hannes Siebenhandl authored
-
- Feb 12, 2024
-
-
Matthew Pickering authored
515eb33d4fcc9382032a9e6b1757b9e2b00a145c changes the order and type of these two fields. Therefore we have to update the decoding logic.
-
Matthew Pickering authored
In particular we make sure to race all the appropiate threads against each other, so that if any of them fail the tests just fail rather than hang forever.
-
- Jan 26, 2024
-
-
-
Hannes Siebenhandl authored
`viewport` is unreasonably inefficient for our usecase when the IOTree grows, as it decides what to display once it rendered to full `IOTree`. Especially while scrolling, this inefficiency became apparent. Unfortunately, brick doesn't have any builtin way to improve this, see https://github.com/jtdaugherty/brick/issues/264 We take `drawListElement` as an inspiration, and only render up to `heightOfBox * 2` elements of the `IOTree`, including expanded tree nodes. This speeds up the view noticeably, giving the user a responsive experience. In particular, we decouple rendering metadata computation from the actual rendering to decide which rows to render.
-
- Jan 23, 2024
-
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
We now display a "flat" cost centre stack rather than forcing the user to expand it at each level.
-