Skip to content

Interactive REPL rejects break <file>:<line>, print, vars — contradicts README #129

@mazurroman

Description

@mazurroman

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions