Skip to content

hw-cbmc: re-enable --vcd#2008

Draft
kroening wants to merge 1 commit into
mainfrom
kroening/hw-cbmc-vcd
Draft

hw-cbmc: re-enable --vcd#2008
kroening wants to merge 1 commit into
mainfrom
kroening/hw-cbmc-vcd

Conversation

@kroening

Copy link
Copy Markdown
Collaborator

The --vcd option was parsed but had no effect, as reported in #1955: show_unwind_trace() was only reachable via CBMC's old error_trace() callback mechanism, which no longer exists since hw-cbmc moved to the goto_verifiert pipeline, leaving it (and do_unwind_module()) as dead code.

Changes:

  • --vcd now enables trace storage in the verifier (a --vcd run hence also prints the trace, as with --trace).
  • On VERIFICATION FAILED, the stored goto trace is converted into a hardware trans_tracet by collecting the values of the timeframe-instantiated signals (identifier@t), and written using the existing show_trans_trace_vcd(). This is independent of the front-end's module naming.
  • The dead do_unwind_module()/error_trace() code is removed.
  • New regression test hw-cbmc/VCD1 checks the VCD output for a counter with a failing assertion.

As before, the VCD covers all timeframes up to the bound; the failing timeframe is not marked.

🤖 Generated with Claude Code

@kroening
kroening marked this pull request as draft July 16, 2026 12:49
The --vcd option was parsed but had no effect: show_unwind_trace() was
only reachable via CBMC's old error_trace() callback mechanism, which no
longer exists since hw-cbmc moved to the goto_verifiert pipeline.

The option now enables trace storage in the verifier, and on
VERIFICATION FAILED the stored goto trace is converted into a hardware
trans_tracet by collecting the values of the timeframe-instantiated
signals (identifier@t), which is then written using the existing
show_trans_trace_vcd(). This is independent of the front-end's module
naming. The dead do_unwind_module()/error_trace() code is removed.

Fixes: #1955

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kroening
kroening force-pushed the kroening/hw-cbmc-vcd branch from 83194f2 to ec082d9 Compare July 16, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant