Severity: high
Confidence: high
Component: soldb trace --interactive and soldb simulate --interactive REPL
Repro
printf 'break Vault.sol:51\nprint amount\nvars\nquit\n' | soldb trace $DEPOSIT1_TX --interactive \
--multi-contract --ethdebug-dir $VAULT_ADDR:Vault:./out \
--ethdebug-dir $TOKEN_ADDR:Token:./out --rpc http://localhost:8545
Observed
Every one of break <file>:<line>, print, vars returns Unknown command: …. The actual command set is exactly: next, nexti, step, continue, goto <step>, break <pc>, clear <pc>, mode source|asm, help, quit. mode source is a no-op for stepping — next / step / nexti all advance one EVM instruction.
Why this matters
The README documents:
(soldb) break TestContract.sol:42
(soldb) next
(soldb) print balance
and:
(soldb) break TestContract.sol:38
(soldb) step
(soldb) vars
Both examples reference commands that don't exist in either subcommand's REPL today. A user trying soldb's interactive mode for the first time will follow the README and hit Unknown command on every line.
Expected
Either match the README (source-line break + print + vars), or update the README to describe the actual commands.
The first option is more valuable — the ETHDebug metadata already loaded contains source-mapping (so break Vault.sol:51 is implementable) and likely variable-location info (so print and vars are implementable).
Severity: high
Confidence: high
Component:
soldb trace --interactiveandsoldb simulate --interactiveREPLRepro
Observed
Every one of
break <file>:<line>,print,varsreturnsUnknown command: …. The actual command set is exactly:next, nexti, step, continue, goto <step>, break <pc>, clear <pc>, mode source|asm, help, quit.mode sourceis a no-op for stepping —next/step/nextiall advance one EVM instruction.Why this matters
The README documents:
and:
Both examples reference commands that don't exist in either subcommand's REPL today. A user trying soldb's interactive mode for the first time will follow the README and hit
Unknown commandon every line.Expected
Either match the README (source-line break +
print+vars), or update the README to describe the actual commands.The first option is more valuable — the ETHDebug metadata already loaded contains source-mapping (so
break Vault.sol:51is implementable) and likely variable-location info (soprintandvarsare implementable).