5 ms·
Visualize and debug Rust programs with a new lens
- waschl 1y agoThat looks very impressive! Would give it a spin but as far as I can tell I can’t use it with my Rust os kernel running inside qemu
- Veserv 1y agoThis is just a trace viewer. Except the trace visualization is vastly less dense than any standard trace viewer and seems to provide no meaningful execution time information. Compare to chrome://tracing https://www.chromium.org/developers/how-tos/trace-event-profiling-tool/ https://www.chromium.org/developers/how-tos/trace-event-prof... I am not sure if trace visualizers were invented 20 years ago for the original time travel debuggers, but they have certainly been used for time travel debugging visualization since at least 20 years ago.
- sureglymop 1y agoIt's definitely a little more than just a trace viewer. As the page reads, it is a time traveling debugger. You can jump back and forth between different snapshots of time during the execution of your program. It's neat because for compiled languages like rust doing something like this is more advanced.
- Veserv 1y agoThat is exactly how trace viewers have been used with time travel debuggers for literally, and I do mean literally, over 20 years. You click a point in the trace, you jump to that point in time. That has been the standard integration for decades.
- sureglymop 1y agoI was under the impression that with a trace viewer you would do that after the execution of the program has finished. Learned something!
- quotemstr 1y agoIt's both. It is a trace viewer, but they instrument native code to emit logs of its operation, e.g. calls and returns, similar to what the recent non-performance-counter rr branch does. Except for some reason it's coupled to a specific GUI and a specific language instead of being a general purpose tool like RR is. The tech industry is getting stupider and hype-ier as it implodes.
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- Rust-Trends 1y agoNice project! I’ll be highlighting it in the next edition of the https://Rust-Trends.com https://Rust-Trends.com newsletter.
- spencerflem 1y agoCool, reminds me somewhat of Glamorous Toolkit [1], another project I just found out about. Excited to give it a try, I love these sort of "explain a program as it's running" type tools. 1. https://gtoolkit.com/ https://gtoolkit.com/
- levkk 1y agoI want to use this right now, but two issues: - Bash script from Internet requiring sudo, no way - VSCode plugin? I don't use VSCode. I'm not switching from Zed (literally built in Rust for Rust development) Help me out, what can I do to try this?
- mdaniel 1y agoDepending on where your "Internet" boundary starts, you can clone the repo and run its install.sh although I think it's for really lazy people since it just downloads the GitHub release artifact anyway https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/install.sh#L62 https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/instal... I don't see that VSCode is required, they have a section dedicated to CLI usage https://github.com/SeaQL/FireDBG.for.Rust#firedbg-command-line-interface https://github.com/SeaQL/FireDBG.for.Rust#firedbg-command-li... and even the "firedbg open" seems to just be a convenience method for file globbing https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/command/src/main.rs#L374-L384 https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/comman... I'm a little with you that it is sus that they don't seem to have any .ts nor package.json file in that repo which would allow one to (a) see what the extension does (b) build the .vsix themselves
- deleted 1y ago[deleted]
- leoh 1y agoThey're just trying to offer an easy way to try things out and unsafe code from Firefox would be insanely harmful for their brand. Of course, if you take a moment to merely download the bash script and inspect it. It's truly not dissimilar from downloading a repository from GitHub and building it. In general, certainly, yes, you don't want to run arbitrary programs.
- orsenthil 1y agoThis is very good. Excellent user-interface too. Reminded me of Pythontutor that I use.
- dochtman 1y agoDoes this work on macOS? On mobile (Firefox on iOS) why does this site keep putting animations in my face?
- deleted 1y ago[deleted]
- mdaniel 1y agoTheir install.sh specifically mentions Darwin https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/install.sh#L209 https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/instal... and they ship pre-compiled for both aarch64 and x86_64 https://github.com/SeaQL/FireDBG.for.Rust/releases/1.81.0 https://github.com/SeaQL/FireDBG.for.Rust/releases/1.81.0
- quotemstr 1y agoFrom a debugger's point of view, Rust is just another native code language. DWARF tells you how to get stacks, find variables, and interpret chunks of memory as data structures. Anyone trying to pitch you a debugger specifically for Rust is trying to ride a hype wave or just plain bamboozle you.
- mdaniel 1y agorelevant: DWARF as a Shared Reverse Engineering Format - https://news.ycombinator.com/item?id=44113026 https://news.ycombinator.com/item?id=44113026 - May, 2025 (17 comments)
- khuey 1y agoIt appears to rely on source instrumentation so it really is language specific.
- quotemstr 1y agoOh. When I read the section on instrumenting function returns, I thought they were going for something more general, since they talk about analyzing assembly. Now I see they're looking at individual Box and Rc instances and have special cases for stdlib data structures. Async support is also a to-do item. I can't see this approach working for very long. Tracing at the binary level, whether you do it as RR does with performance counting or whether you do it via instrumentation like Undo and iDNA, works for the general case because it records execution at the lowest level available to a process and therefore captures everything, without special cases. If these guys want to make a fancy time travel debugger data explorer, that's great. They could in principle make one on top of existing tracing technology without having to simultaneously reinvent both the debugger core and the GUI.
- khuey 1y agoFrom https://firedbg.sea-ql.org/blog/2023-12-11-architecture-of-firedbg/ https://firedbg.sea-ql.org/blog/2023-12-11-architecture-of-f... it seems more like lldb automation than what "time travel debugger" brings to mind.
- sahil_sharma0 1y ago[dead]
- tonyhart7 1y agowould love to do this with database instead, inspect query and so on anyone know the tool name??? I know it exist but forget it while ago
- hencoappel 1y agoSomething like the SQL Server Management Studio execution plan view? https://learn.microsoft.com/en-us/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver17 https://learn.microsoft.com/en-us/sql/relational-databases/p...
- artogahr 1y agoDequery might be what you're looking for: https://dequery.io https://dequery.io
- forrestthewoods 1y agoPlease show me this being used to debug a real program. Toy examples that don’t do any real work isn’t interesting. My confidence that this work for an actual program is approximately zero percent.
- leoh 1y agoLet's stay positive here. This is very cool.
- Pfeil 1y agoWhile I am not so negative, I'd also like to have a demo with a real example. Even if it does not scale, I think this could make debugging interesting at least for beginners and their smaller code bases. Rust is called a language that is hard for beginners, and I think every approach into easing things should be welcomed.
- mickey475778 1y ago[dead]
- leoh 1y ago“Simple things should be simple. Complex things should be possible.” - Alan Kay Rust really embodies this imo. I think it will be a few more years, but we're going to be seeing a lot more Rust -- and for good reason.