Trace exploration on the command-line
See original GitHub issueTODOS
- 1) Port existing trace tests (.tla/.cfg) to the old testing framework (some will have to be split into more than one test)
- 2) No user will know what “FILTERED BY ALIAS” is. Can’t you subclass
TLCStateInfo
withAliasedTLCStateInfo
that stores the originalTLCState
in addition to theTLCState
that evalAlias creates. The generated spec can then be generated from the originalTLCState
.
\* INVARIANT definition
inv_16084900312813000 ==
~(
color = (
"FILTERED BY ALIAS"
)/\
tpos = (
"FILTERED BY ALIAS"
)/\
tcolor = (
"FILTERED BY ALIAS"
)/\
active = (
"FILTERED BY ALIAS"
)
)
- 3) Change
SpecTraceExpressionWriter
to generate an module with nameEWD840_TE
(no timestap!) inEWD840_T_1234
that extendsEWD840
and definesTraceExpression
. The (root) moduleEWD840_T_1234
extendsEWD840_TE
. Users can then manually createEWD840_TE.tla
that will take precedence over moduleEWD840_TE
inEWD840_T_1234.tla
and reuse the trace expressions inEWD840_TE.tla
for N traces - 3) Change pattern for filename from
Spec_EWD840_TE
toEWD840_T_$SecondsSinceEpoch
(perhaps milliseconds?) - 4) Move commas in
TraceExpression
alias stub to the beginning of the lines as discussed in the chat - 5) Meaningful example (users will wonder what
x
,~y
, andENABLED actionName
are) 5a) Generate a comment forALIAS
in theEWD840_T_1234.cfg
similar to the one of the Toolbox. Tell the user what an ALIAS is. Mentions constant-, state-, and action-level formulas and, perhaps, warns about its current short-comings WRT error reporting (add a pointer to Github issue) 5b) Short reference in alias stub in moduleEWD840_TE
that points the user to longer comment inEWD840_T_1234.cfg
5c) Users should also be made aware that they can remove the entries for the spec’s variables - 6) Prototype how well it works from a user perspective if
EWD840_T_$SecondsSinceEpoch.cfg
is prepended or appended toEWD840_T_$SecondsSinceEpoch.tla
(monolith spec feature). Halves the number ofEWD840_T_*
files in the spec directory and tab-completion completes toEWD840_T_1234.tla
that TLC accepts compared toEWD840_T_1234.
(dangling dot) for which TLC fails- This would require users to pass
-config EWD840_TTrace_1234.tla
to TLC - Could be set by the VSCode extension, but we could also flip TLC’s default and let the in-spec config take precedence
- This would require users to pass
- 7) Human-readable formatting of
INVARIANT definition
(keep parentheses though!) Indent by at least one char to fix folding in VSCode extension - 8) Map TTrace action names to real/actual action names (this overlaps with/is related to adding action names to
TLCExt!Trace
) - 9) https://github.com/tlaplus/tlaplus/issues/547
- 10) Serialize trace to json (blocked by https://github.com/tlaplus/CommunityModules/issues/29)
---- MODULE EWD840_TTrace_1608616544 ----
EXTENDS Toolbox, TLC, EWD840, Json, TLCExt
...
\* INVARIANT definition
inv_16086165457763000 ==
~(
color = (
(0 :> "white" @@ 1 :> "white" @@ 2 :> "white")
...
)
) \/ /\ JsonSerialize("EWD840_TTrace_1608616544.json", Trace) \* String here generated by SpecTraceExpressionWriter
/\ ~PrintT("Trace written to EWD840_TTrace_1608616544.json")
- 11) Indent generated
dev_of_1234
at the end ofMySpec_TTrace_1234
to enable folding - 12) Command for VSCode extension to run the newest
MySpec_TTrace_1234
spec - 13) Trigger deadlock instead of artificial invariant violation in
MySpec_TTrace_1234
when ``MySpec` deadlocked - 14) Pass
-noGenerateSpecTe
when TLC is run from the Toolbox (Toolbox has not been ported to new trace exploration)
Issue Analytics
- State:
- Created 3 years ago
- Comments:10 (10 by maintainers)
Top Results From Across the Web
How to Use Tracert (TraceRoute) Command with Examples
The tracert (which is short for trace route) is a Windows network command-line utility used to help diagnose network routing issues.
Read more >How to Run Traceroute on a Switch through the Command ...
This article provides instructions on how to run the traceroute command on your switch through the CLI.
Read more >TraceView Command-Line Interface - Windows drivers
The TraceView command-line interface enables you to control the TraceView features from a Command Prompt window. The command-line interface ...
Read more >Check-out Trace Utility Command-line Operations
In general, you can run the utility from the command line with default options as follows: CheckoutTraceDump.exe -go.
Read more >Tracing an EXE with commandline arguments - GitHub
Sometimes you may want to trace an executable that needs some specific commandline arguments. Currently, you can set them in the Tiny Tracer ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
I declare victory! Thanks @quaeler, @ahelwer, and @pfeodrippe
Related https://github.com/tlaplus/tlaplus/issues/600