Skip to content
Tom's Software Emporium

Super-Assert()

The Ultimate Upgrade for the C Standard Library's assertions

As a software developer or game developer, you're no stranger to the challenges of debugging complex applications. Enter Super-Assert, an innovative upgrade to the C standard library's trusty assert() function, designed with the modern developer in mind. Super-Assert isn't just about catching bugs–it's about empowering you to handle them more efficiently, reducing interruptions, and making your debugging workflow smoother than ever.

Why Super-Assert?

The standard assert() function has been a core tool in the C developer's toolkit for years, but as applications have grown in complexity, its limitations have become more apparent. Super-Assert takes everything great about assert() and builds upon it with new features that simplify debugging, minimize friction, and enhance productivity for developers–whether you're building a command-line tool or a sophisticated game engine.

Here's what Super-Assert brings to the table:

1. Redesigned Developer-Friendly Dialog

Super-Assert introduces an intuitive developer-first assertion dialog that's engineered for speed and ease of use. The interface features:

Screenshot of SuperAssert dialog

2. Pixel-Perfect DPI Scaling

Working across different screen setups, including high-DPI monitors? Super-Assert has you covered. With flawless DPI scaling, including crisp, well-designed sprites, Super-Assert's dialog looks sharp and functions seamlessly on any display configuration. Whether you're developing on a 4K monitor or traditional setup, Super-Assert scales perfectly without any visual glitches or blurry text.

Screenshot showing two SuperAssert dialogs at different scaling levels

3. Break at Assertion Location

One of the most frustrating issues with some compilers' assertion handlers is when pressing Retry drops you into a runtime library function, requiring you to dig through the call stack to locate the real problem in your code. With Super Assert, that's a thing of the past.

When you press Retry, Super Assert always breaks into the debugger at the exact line where the assertion failed–for both GUI and console applications. No more stepping through C runtime functions or scrolling up the stack trace to find the offending line of code. This precision saves time by letting you zero in on bugs right away.

4. Loop Friendly with Ignore All

Dealing with assertions in application or game main loops can be a headache. Standard assert() functions can leave you stuck in endless assertion pop-ups when issues arise in frequently called functions. Super Assert offers a smarter solution with the "Ignore All" button.

Clicking "Ignore All" suppresses the specific assertion for the rest of the debugging session, allowing you to focus on fixing other issues without constant interruptions. Crucially, it also ensures that the assertion's parameters are still evaluated–just in case they contain side-effects that might affect other areas of your code.

5. Minimally Invasive

Unlike some compilers' assertion hanlders that load external modules like User32's MessageBox function, Super Assert does not load any new DLLs or modules into the process that triggered the assertion. This lightweight, non-intrusive design makes Super Assert ideal for both GUI and command-line applications, ensuring minimal interference with your address space during debugging. Finally Assert.exe does not depend on any C-Runtime Library.

A Smarter Way to Debug

Super-Assert is more than just a debugging tool–it's a productivity booster for developers who demand precision, speed, and efficiency. With intuitive keyboard shortcuts, a developer-first UI, performance-optimized design, and a powerful "Ignore All" feature, Super-Assert makes writing assertions fun again.

Download Visual Studio Project: [AssertSample.zip].
Download Standalone Assertion Dialog: [Assert.zip].

Free for personal, non-commercial use. Contact for enterprise licensing.