WhiteBox v0.116.0


WhiteBox v0.116.0

Highlights

  • Inspect data for code while it’s running
  • Inline timeline data graphs
  • Faster but less detailed “black box only” recording option
  • Greatly improved C++ support
  • 10x Editor plugin

(fullscreen viewing recommended)

Data & execution inspection/recording

  • We now run user code concurrently with WhiteBox, updating timeline views as we go.
    • This makes it feasible to inspect longer-running functions, and when combined with locking the function caller on a root function (e.g. main)
    • Space bar shortcut to pause & continue
  • Add black-box only recording - just function inputs & outputs
    • Although we have plans to minimize this in future, there’s currently significant slowdown from the repeated context switches involved in sampling data. This is typically fine for straight-line code, but can be a problem for hot loops. Black-box-only mode changes the recording granularity to just the start and end of functions, so you can quickly see the final state of variables in the function and return value for a given set of inputs.
  • Fix <NO DATA> for pointers at the start of structs
  • Fix infinite loop from certain invalid addresses
  • Fix Linux stdout in non-primary functions causing SEGV_MAPERR

Timeline

  • Graph basic values on timeline scaled to the min & max initialized values seen for the expression
    • Add heuristic for determining not-yet-declared/“uninitialized” variables
  • Improved model for timeline highlights/value
    • Conceptualizes data as program states that are transitioned between through executing code.
    • Code selections, e.g. line highlights, are half-offset from data bars.
    • Transitions start in one state and end in another, showing you the values that changed during its execution.
    • Timeline highlights from the cursor now span the entire line transition, rather than just a single sample
  • Right-click option to show registers on timeline
  • Better timeline dragging feel
  • Better timeline ruler
  • Improve timeline text positioning
  • Improve timeline error bar

Function caller

  • Add “Lock Caller” option to function caller right-click menu
    • Helpful when you want a single entry point/continued context as you jump between different functions
  • Add WB_COUNTOF macro in function caller for easily getting the length of arrays
  • Function caller (escape)
  • Function caller generation for constructors & destructors
  • Fix some UX oddities

(fullscreen viewing recommended)

Data presentation

  • Add disassembly window with options for viewing lines, and a hit barchart/heatmap
  • Apply formatting options to timeline values
  • Add float formatting options
  • Better support for anonymous structs/unions etc: expression strings, data tree nodes, struct previews
  • Preview multi-dimensional arrays
  • Redo data tree value graphing, with themed colours, scaling & an out-of-bounds indicator (uninitialized values are shown but don’t affect scale)

Misc GUI

  • Improved bug feedback & reporting
  • More accurate & informative status messages
  • Better tooltips
  • Add a separator in the console between recompiles/reruns
  • Fix various ImGui ID duplication issues
  • Additional keyboard shortcuts

Building code

  • Improved clang argument handling, including accounting for -Werror
  • Support unnamed function parameters
  • Support macros in function signature, e.g. #define internal static
  • Change working directory to that of the root file, making relative paths to object files etc viable
  • Fix SEGV_MAPERR when running large quantities of code
  • Handle __chkstk misalignment
  • Fix clang NameConflict handling of recursive types when combined with typedefs
  • Handle missing objects

C++ support

  • constructors & destructors, including non-trivial implicit ones
  • rvalue references
  • templates
  • friend classes & friend templates

External/ecosystem interaction

  • Add 10x plugin
  • Add --data-dir option for custom database directory
  • Add experimental WSL support, e.g. using a Windows editor with WhiteBox on Linux
  • WhiteBox no longer closes on disconnect; in part to accommodate common vim workflows that involve frequent editor opening/closing

Files

whitebox-win-linux-v0.116.0.zip 70 MB
Version v0.116.0 Jul 20, 2023

Get WhiteBox

Buy Now$69.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.