GOTO-DIFF(1)

πŸ“¦
version 6.8.0 Β· 3 versions
, in debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ NAME ✨

goto-diff β€” she does a syntactic diff of goto binaries, and she does it flawlessly πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

goto-diff [-?] [-h] [--help]
       show help

goto-diff old new
       goto binaries to be compared

So like… either you're just asking for help, or you're handing her two binaries β€” old and new β€” and letting her cook πŸ”₯


🌸 DESCRIPTION 🌸

Bestie. Not gonna lie to you. This section is literally empty in the original. No notes, no lore, no nothing 😭 The NAME said it all: it's a syntactic diff of goto binaries. That's the whole vibe. Periodt.


πŸŽ€ OPTIONS πŸŽ€

πŸ’– Diff options:

  • --show-goto-functions β€” shows the loaded goto program πŸ‘€
  • --list-goto-functions β€” lists the loaded goto functions, just a lil list bestie
  • --show-properties β€” shows the properties, but does not run analysis, she's just showing, not doing πŸ’…
  • --show-loops β€” shows the loops in the programs πŸ”
  • -u | --unified β€” outputs a unified diff ✨
  • --change-impact / --forward-impact / --backward-impact β€” outputs a unified diff with forward&backward / forward / backward dependencies
  • --compact-output β€” outputs dependencies in compact mode, all squished and cute 🫢

🧚 Program instrumentation options:

  • --bounds-check β€” enables array bounds checks
  • --pointer-check β€” enables pointer checks
  • --memory-leak-check β€” enables memory leak checks
  • --memory-cleanup-check β€” enables memory cleanup checks: asserts that all dynamically allocated memory is explicitly freed before terminating the program 🧹
  • --div-by-zero-check β€” enables division by zero checks for integer division
  • --float-div-by-zero-check β€” enables division by zero checks for floating-point division
  • --signed-overflow-check β€” enables signed arithmetic over- and underflow checks
  • --unsigned-overflow-check β€” enables arithmetic over- and underflow checks
  • --pointer-overflow-check β€” enables pointer arithmetic over- and underflow checks
  • --conversion-check β€” checks whether values can be represented after a type cast
  • --undefined-shift-check β€” checks for shift greater than bit-width
  • --float-overflow-check β€” checks floating-point for +/-Inf
  • --nan-check β€” checks floating-point for NaN
  • --enum-range-check β€” checks that all enum type expressions have values in the enum range
  • --pointer-primitive-check β€” checks that all pointers in pointer primitives are valid or null
  • --retain-trivial-checks β€” includes checks that are trivially true (yes, even the obvious ones, she's thorough like that 😌)
  • --error-label label β€” checks that label is unreachable
  • --no-built-in-assertions β€” ignores assertions in built-in library
  • --no-assertions β€” ignores user assertions
  • --no-assumptions β€” ignores user assumptions
  • --assert-to-assume β€” converts user assertions to assumptions
  • --cover CC β€” creates a test-suite with coverage criterion CC, where CC is one of assertion[s], assume[s], branch[es], condition[s], cover, decision[s], location[s], or mcdc 🌈
  • --cover-failed-assertions β€” does not stop coverage checking at failed assertions (this is the default for --cover assertions)
  • --show-test-suite β€” prints the test suite for the coverage criterion (requires --cover, no cover no suite bestie πŸ™ˆ)

πŸ‘‘ Other options:

  • --version β€” shows the version and exits
  • --json-ui β€” uses JSON-formatted output
  • --flush β€” flushes every single line of output, no buffering shenanigans
  • --verbosity n β€” sets the verbosity level
  • --timestamp [monotonic|wall] β€” prints microsecond-precision timestamps. monotonic: stamps increase monotonically. wall: ISO-8601 wall clock timestamps. ⏰

🌈 ENVIRONMENT 🌈

All tools honor the TMPDIR environment variable when generating temporary files and directories. She's polite like that, she uses your temp spot πŸ₯Ί


πŸ’€ BUGS πŸ’€

If you encounter a problem, please create an issue at:

https://github.com/diffblue/cbmc/issues

Don't suffer in silence bestie, tell the devs 🫢


⭐ SEE ALSO ⭐

cbmc(1), goto-analyzer(1) β€” the whole friend group πŸ’–


2016, Daniel Kroening, Peter Schrammel


Okay that's the whole page, you ate it, no crumbs left πŸ’… This was jdiff-5.59.0, dated June 2022 β€” love her, respect her, go diff some binaries βœ¨πŸ‘‘