Live data from Hacker News

Show HN: Time travel debugger for web development

replay.io

101–110 of 223 posts

Re: Show HN: Time travel debugger for web development

#101

Earlier quoted context omitted.

> First, nobody uses breakpoints. It saddens me that a lot of people don't use debuggers and default to adding print statements. As far as I can tell, it's for several reasons: 1. The debugger is primitive (e.g. Godot GDScript - no conditional breakpoints or watches). 2. The debugger is unstable (e.g. Android Studio - frequently hangs, or takes a long time to populate data needlessly) 3. The debugger's UI is not frie…

I think print statements are actually useful in ways that typical debuggers are not meant to be; they make it easy to show changes over time, and they provide a tight feedback loop between observing the value of some data and performing interactions that update that data. For example, if you wanted to know how a coordinate calculation changed as you scrolled the page, print statements would be more useful than a debu…

That and concurrent execution is where I've found print statements to be most useful, but nothing prevents a debugger from keeping track of some value over time and then display those values on the UI, just like one would with a print statement.

My view is that using print statements is absolutely a subpar method of debugging and that we should, in fact, optimize away from it by creating better debuggers.

Re: Show HN: Time travel debugger for web development

#102

Co-founder here. It feels incredible to be sharing Replay with all of you. It's been a labor of love the past five years! Replay started off as a simple experiment in what would happen if we added a step back button and rewind button to the Debugger. We quickly realized two things. First, nobody uses breakpoints. Second, being able to share is so much more powerful than being able to rewind. Here’s how Replay works t…

Congratulations! This looks super interesting!

How are side effects (mutating HTTP calls, cookie creation, other I/O) handled?

Re: Show HN: Time travel debugger for web development

#103
post #87

Can the creators describe this product's advantage over FullStory and LogRocket? Also, it seems challenging to get this to work in production, since users wouldn't consent to this level of monitoring.

In its current state, Replay's not meant to replace either of those products as it's not meant for 24/7 user session monitoring. Instead, it's something that we see teams reaching for in their debugging workflow.

The usual bug workflow is for one person to file an issue with steps to reproduce, which the engineer will use to reproduce the bug and try to debug the problem. Replay replaces that workflow by allowing a person to record a replay, and send that link (which is immediately debuggable) to the engineer.

Re: Show HN: Time travel debugger for web development

#104

Hmm it seems I am required to sign up for an account before I can try it out. Either that or for some other reason I am missing the Record button.

You can try out any of the replay demos on our website without signing up for an account. I suggest starting out with this one in case you haven't yet: https://app.replay.io/recording/aae188fb-57d2-46af-a23a-0adb...

However, we do need you to sign up for an account to record a replay.

Re: Show HN: Time travel debugger for web development

#105

Earlier quoted context omitted.

Which debugger do you use because I live in JetBrains tools and their debugger front-end support for conditional or on exception break points is phenomenal

The debugger in devtools also has these capabilities.

Can confirm. Use it often both on Chrome and Firefox.

I love the idea of reply, but is it targeting the wrong people to get the post leverage out of it? Print statements generally don't need to be used for debugging if you know how to use a debugger. Which really isn't difficult if you spend maybe half an hour learning it's features.

Re: Show HN: Time travel debugger for web development

#106

Co-founder here. It feels incredible to be sharing Replay with all of you. It's been a labor of love the past five years! Replay started off as a simple experiment in what would happen if we added a step back button and rewind button to the Debugger. We quickly realized two things. First, nobody uses breakpoints. Second, being able to share is so much more powerful than being able to rewind. Here’s how Replay works t…

Currently the only way to sign up for a personal account is through google. Is there another way that I am missing, or are there any plans to provide email based signups in the future?

Re: Show HN: Time travel debugger for web development

#107
post #86

Earlier quoted context omitted.

Hey! Sorry to hear you're having an issue. That message occurs when we try to asynchronously load a JavaScript bundle for the app and it fails. Typically, that's because we've updated the app and that bundle has been replaced with another file. That shouldn't be the case for you though so perhaps there's a network issue? Clearing your cache and trying again might resolve it. Feel free to jump on our discord ( https:/…

I'm using just a slightly outdated browser, which is probably the cause. I'm on Ungoogled Chromium 81 (by choice) which doesn't automatically update, and the ||= (boolean OR assignment) operator wasn't added until 85. Your payload appears to compile down for older browsers (as is evident by the use of `var`, unless.. you actually write code using `var`) but it misses the ||= operator transformation it seems. Thus, th…

Great diagnostics! We'll have to adjust our compilation settings to target a broader browser set.

I've filed an issue regarding the right click issue. That's a fair comment: https://github.com/RecordReplay/devtools/issues/3615

Re: Show HN: Time travel debugger for web development

#108
post #7

Earlier quoted context omitted.

How does it work? Are you making memory snapshots? Something higher level?

Long story short, we forked the major browsers so that when you record we can capture the browser input (OS Library calls). Brian walks through our approach here https://medium.com/replay-io/how-replay-works-5c9c29580c58

How will this work on the long run? Will you try to upstream the required changes or will the forks have to be maintained perpetually?

Re: Show HN: Time travel debugger for web development

#109

For those who are looking to similar tooling in back end space, check - https://undo.io/ (It can also support Golang https://docs.undo.io/GoDelve.html ) - Mozilla RR https://rr-project.org/ - GDB https://www.gnu.org/software/gdb/news/reversible.html Unfortunately, works only in Linux. https://en.wikipedia.org/wiki/Time_travel_debugging

Not to toot my own horn but also darklang (https://darklang.com)

Re: Show HN: Time travel debugger for web development

#110
post #91

Earlier quoted context omitted.

Not exactly similar, but in IntelliJ/java one can drop the current frame in the debugger. This jumps one step up in the stack, and allows you to enter the function fresh. Can drop arbitrary many stacks to go backwards. Of course, it doesn't rollback the heap or any shared state. And playing forward again it will redo things again. So beware of side effects. But in codebases with lots of immutable data structures (Kot…

Wow! Thank you so much for this comment. I have been using IntelliJ for over 10 years and I never knew this feature existed, I just gave it a try and it's incredibly useful. One thing I wish Java debuggers supported was the ability to move the instruction pointer to a different line, as has been possible in other debuggers for ages. Is it a JVM limitation maybe? I remember being able to drag the "current line" pointe…

Never heard of that functionality, but googling brings up this https://blog.jetbrains.com/idea/2020/08/jump-to-any-line-whi...

> if you want to jump to a particular line and set an execution point there, without executing the preceding code

Post reply on HN