
-
https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
Or on Linux use rr (https://rr-project.org/) or Undo (https://undo.io - disclaimer: I work on this).
These have the advantage that you only need to repro the bug once (just record it in a loop until the bug happens) then debug at your leisure. So even rare bugs are susceptible.
rr and Undo also both have modes for provoking concurrency bugs (Chaos Mode from rr - https://robert.ocallahan.org/2016/02/introducing-rr-chaos-mo..., Thread Fuzzing from Undo - https://undo.io/resources/thread-fuzzing-wild/)
-
Nutrient
Nutrient - The #1 PDF SDK Library. Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.
-
Agree, there are some time travel debuggers though but either only for some programming languages or expensive commercial or only for linux e.g. rr-debugger[0]. Also there is rerun [1] that is only for image processing pipeline debugging.
I wish there was something similar like rerun but for code: you record the whole program running and capture all snapshots then stop it running. Now you can analyze all app execution and variables even offline and use any data queries, modify prints without execution and feed it too AI as extra context. I guess RAM would be a big obstacle to make it work since you would either have to capture snapshot at every program modification or some less snapshot but some diffs between what changed.
[0] https://rr-project.org/
[1] https://www.rerun.io/
-
jolikit
Java APIs to abstract away time (clocks, schedulers), simple 2D UIs (BWD), and a bit more, with default implementations
>I appended (...) traces into (...) memory. (...) An unrelated process would read (...) at opportune time and hand over to the developer.
I did something similar to debug concurrent treatments in Java, that allows to accumulate log statements in thread-local or instance-local collections and then publish them with possibly just a lazySet():
https://github.com/jeffhain/jolikit/blob/master/src/main/jav...
-
Have you ever been able to try https://replay.io time travel debugging as an alternative to conventional logging?
Last time I tried it you were able to add logging statements "after the fact" (i.e. after reproducing the bug) and see what they would have printed. I believe they also have the ability to act like a conventional debugger.
I think they're changing some aspects of their business model but the core record / replay tech is really cool.
-
For those doing print debugging in python see the screenshots here https://github.com/likianta/lk-logger
-
-
If you buy in and happen to use Vim, there are plug-ins [0] to print debug by single keystrokes.
[0] : https://github.com/bergercookie/vim-debugstring
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Related posts
-
GDB-front end: GDB front end with a browser-based UI
-
Hey guys, I wanted to share with you that GDBFrontend v0.11.3-beta is now available! This version includes some crucial bug fixes and enhancements, as well as support for MacOS x86_64. Although, we still need to give it a test run on an x64 MacOS since I only have an M1. 😬
-
Visualization tools for Data Structures?
-
Hi, I just released GDBFrontend v0.11.3-beta that has important bugfixes/improvements and MacOS x86_64 support (we still need to test on an x64 MacOS since I have M1 one)
-
Hi, I just released GDBFrontend v0.11.3-beta that has important bugfixes/improvements and MacOS x86_64 support (we still need to test on an x64 MacOS since I have M1 one 🙀)