Commits on Source (83)
-
Zubin authored
Query debugee for profiling mode and TNTC Deserialize closures instead of relying on ghc-heap The above is necessary to decode profiling headers and ghc-heap does not Additionally, deserialize info tables in haskell code instead of relying on ghc-heap. This is also necessary to decode profiling info tables properly. Perhaps we should introduce a type for profiling info tables instead of using StgInfoTable
-
Zubin authored
-
Zubin authored
-
Zubin authored
-
Matthew Pickering authored
-
Zubin authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Teo Camarasu authored
Resolves #25
-
Matthew Pickering authored
-
* Add find retainer by address, precisely find retainers of a specific closure address. * Add ArrWords count analysis which performs a census of the ArrWords closures. * Generalise display pane, to allow displaying trees of different types (not just ClosureDetails) (used by the arr words census) * Allow commands to not have key bindings (and just appear in command picker) * Cleanup: Remove "Analysis" modes such as dominator and size analysis. (cherry picked from commit 349760d0)
-
(cherry picked from commit 865dd6a4)
-
(cherry picked from commit d0250893)
-
Inside an hBox if there are multiple greedy widgets they are allocated equal space. This meant the commands and number display were allocated the same number of columns which led to a lot of whitespace. (cherry picked from commit 7a1fdab5)
-
Matthew Pickering authored
These are no longer used
-
Matthew Pickering authored
-
Matthew Pickering authored
We should never attempt to dereference a null pointer, any null pointers should be captured at the point of creation.
-
Matthew Pickering authored
We now display a "flat" cost centre stack rather than forcing the user to expand it at each level.
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
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.
-
-
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.
-
Matthew Pickering authored
515eb33d4fcc9382032a9e6b1757b9e2b00a145c changes the order and type of these two fields. Therefore we have to update the decoding logic.
-
Hannes Siebenhandl authored
-
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.
-
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
-
Hannes Siebenhandl authored
-
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.
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
-
-
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.
-
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
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering 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.
-
Hannes Siebenhandl authored
-
Hannes Siebenhandl authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
-
Matthew Pickering authored
This has long been unused and introduces additional dependencies into the install plan.
-
-
-
Hannes Siebenhandl authored
The `closure_desc` of `InfoProv_` was changed from an `char *` to an `uint32_t`. This change was mostly done to fix issue: ghc#24504 We adapt the stub to these changes by essentially converting the number stored in `closure_desc` to its string representation, as most tools expect this format. For example, the number `10` is turned into the string `"10"`.
-
Ben Gamari authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
-
Matthew Pickering authored
Showing
- .gitlab-ci.yml 6 additions, 3 deletions.gitlab-ci.yml
- cabal.project 1 addition, 1 deletioncabal.project
- client/CHANGELOG.md 10 additions, 0 deletionsclient/CHANGELOG.md
- client/ghc-debug-client.cabal 14 additions, 11 deletionsclient/ghc-debug-client.cabal
- client/src/GHC/Debug/Client.hs 9 additions, 2 deletionsclient/src/GHC/Debug/Client.hs
- client/src/GHC/Debug/Client/Monad/Simple.hs 1 addition, 3 deletionsclient/src/GHC/Debug/Client/Monad/Simple.hs
- client/src/GHC/Debug/Client/Query.hs 64 additions, 10 deletionsclient/src/GHC/Debug/Client/Query.hs
- client/src/GHC/Debug/Client/RequestCache.hs 28 additions, 5 deletionsclient/src/GHC/Debug/Client/RequestCache.hs
- client/src/GHC/Debug/Client/Search.hs 1 addition, 1 deletionclient/src/GHC/Debug/Client/Search.hs
- client/src/GHC/Debug/CostCentres.hs 129 additions, 0 deletionsclient/src/GHC/Debug/CostCentres.hs
- client/src/GHC/Debug/Count.hs 11 additions, 18 deletionsclient/src/GHC/Debug/Count.hs
- client/src/GHC/Debug/Fragmentation.hs 5 additions, 5 deletionsclient/src/GHC/Debug/Fragmentation.hs
- client/src/GHC/Debug/GML.hs 1 addition, 1 deletionclient/src/GHC/Debug/GML.hs
- client/src/GHC/Debug/ObjectEquiv.hs 4 additions, 12 deletionsclient/src/GHC/Debug/ObjectEquiv.hs
- client/src/GHC/Debug/ParTrace.hs 63 additions, 20 deletionsclient/src/GHC/Debug/ParTrace.hs
- client/src/GHC/Debug/Profile.hs 142 additions, 39 deletionsclient/src/GHC/Debug/Profile.hs
- client/src/GHC/Debug/Profile/Types.hs 22 additions, 6 deletionsclient/src/GHC/Debug/Profile/Types.hs
- client/src/GHC/Debug/Retainers.hs 128 additions, 56 deletionsclient/src/GHC/Debug/Retainers.hs
- client/src/GHC/Debug/Snapshot.hs 6 additions, 3 deletionsclient/src/GHC/Debug/Snapshot.hs
- client/src/GHC/Debug/Strings.hs 25 additions, 30 deletionsclient/src/GHC/Debug/Strings.hs
client/src/GHC/Debug/CostCentres.hs
0 → 100644