Transition from object map to object tree and UI improvements#1626
Transition from object map to object tree and UI improvements#1626skuntz wants to merge 6 commits into
Conversation
|
CLANG-FORMAT TEST - PASSED |
* fixes segmentation fault for malformed print command * print help update
|
CLANG-FORMAT TEST - PASSED |
|
Status Flag 'Pre-Test Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging |
| template <typename... Args> | ||
| struct is_tuple<std::tuple<Args...>> : std::true_type | ||
| {}; | ||
|
|
There was a problem hiding this comment.
This code can be removed, print formatting for debugConsole is now handled locally to that class. I neglected to remove this code.
There was a problem hiding this comment.
(this goes for all changes in this file)
|
CLANG-FORMAT TEST - PASSED |
|
Testing update:
To run Once this PR is merged into At this point, there is no additional work planned for this branch other than writing new tests as time allows. |
|
In addition to the 'planned improvements' listed in the sst-docs web page, https://sst-simulator.org/sst-docs/docs/guides/features/debug#planned-improvements TCL has issues and enhancements tracked in GitHub here: |
Ensure logging file path and replay file path are not the same
|
CLANG-FORMAT TEST - PASSED |
|
Status Flag 'Pre-Test Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging |
Object Tree is an extension of the object map for use with the debug console. It provides an easily traversable structure to allow for storage and inspection of arbitrary types and improved usability, particularly for containers.
The object tree is organized as a tree, implemented as a vector of vectors with an enforced hierarchy and strong typing. It is dynamically built -- as the user traverses the simulation structure, new objects are added (same principle as ObjectMapDeferred). It uses a combination of CRTP, Visitor, Variant, and Polymorphism. It adds support for generic fundamentals and the numeric handler enables direct comparison against constants and other tree nodes.
Console command improvements with object tree include:
cd: Components and objects named the same are explicitly disambiguatedls: Support forls -land-llto control the level of detailset: Indices are now supported e.g.set container[i][j][k]watchpoints: Leverage the type information in the object tree to perform native comparison between generic types and constants; Watchpoints on a container size now possible with a small extension
print: Indices, explicit verbosity, and formatting now supported and names are slightly demangled.print -v N -f [hex | dec | oct] container[i][j][k]General UI improvements:
cdinto any type, including containers, and clearer printing of typesshowcommand to display user-defined commandsprint,info all,watchlist, andprinttracecommands (previously only enabled for ls)print -r Ndoes not print top level components