Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
mark_undoio
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
8 ms
·
31.
▲
by
mark_undoio
1y ago
Undo (where I'm CTO) has existed for longer than RR and its real benefit is that it scales to use cases where RR (for one reason or another) isn't a fit. Technically: * Doesn't need hardware performance counters - runs on mor
32.
▲
by
mark_undoio
1y ago
Ah, lovely blast from the past! I remember finding this DLL and being delighted that I could now put pretty icons on more things. Also remember taking ages to figure out that it meant "more icons" rather than just a silly made
33.
▲
C++ Dynamic Debugging: Full Debuggability for Optimized Builds
(devblogs.microsoft.com)
3 points
by
mark_undoio
1y ago
|
0 comments
34.
▲
by
mark_undoio
1y ago
Thank you - I'm watching that video now and it's amazing!
35.
▲
Enhance your GDB experience with TUI many windows
(undo.io)
8 points
by
mark_undoio
2y ago
|
0 comments
36.
▲
by
mark_undoio
2y ago
> Google Docs renders to a virtual canvas in the browser in the same way an applet would've back in 2003, except it would've been able to open files directly from the file system. I'd have said the situation back then was
37.
▲
by
mark_undoio
2y ago
I quite like that Acorn still sort-of has that reference living on in the modern world. Acorn is a local company for me - a load of my colleagues / contacts through the local tech scene worked there. It's also a company whose prod
38.
▲
by
mark_undoio
2y ago
I've love to have one of these to interact through! But every time I see these vintage TTYs I simultaneously think "that's so cool, I have to have it" and "I have no space for that on my desk".
39.
▲
by
mark_undoio
2y ago
As somebody who's been building a tools-based business for the past 10 years I have mixed feelings about this one ;-) We're perhaps in a different space (time travel debugging for C/C++/Java/Rust/Go/Python
40.
▲
by
mark_undoio
2y ago
For what it's worth we do offer a more printf-y interface for people who don't like a debugger - https://docs.undo.io/PostFailureLogging.html And CLion / VS Code for people who prefer an IDE interface. But a
41.
▲
by
mark_undoio
2y ago
We've got a prototype of debugging in python and C/C++ in GDB - https://undo.io/resources/how-i-debug-python-code-with-a-tim... If you'd like to try it please get in touch, feedback is always useful.
42.
▲
by
mark_undoio
2y ago
> Yup, it's mostly just the story and tools we used to get ourselves out of a mess that was made harder by some decisions made earlier -- the tests were running in a container with stripped symbols (we're going to ship symbols
43.
▲
by
mark_undoio
2y ago
Looks like it - if you turn the simulation speed slider way up you can see the image forming as it passes over.
44.
▲
by
mark_undoio
2y ago
Time travel debugging ( https://en.wikipedia.org/wiki/Time_travel_debugging ) can be good for this situation too because it separates capturing a bug ("recording") and understanding it (the debugging phase, whi
45.
▲
by
mark_undoio
2y ago
Getting a split-layout "ergo" keyboard helped me learn to type better back in the day. I could already touch type fast but not with great technique. When I got a split layout key it became quite apparent that my technique was &qu
46.
▲
by
mark_undoio
2y ago
> If you're debugging a memory leak, calling a function that's going to make a deep-dive on the stack and move a lot of memory around is likely to obscure your bug. shudder memories of my early days in kernel-level programmin
47.
▲
by
mark_undoio
2y ago
Can I ask what about it forced the issue? Working on network services? The languages you developed in? Culture?
48.
▲
by
mark_undoio
2y ago
> "Oh sure, lemme just set a breakpoint on this network service. Hm... Looks like my error is 'request timed out', how strange." Time travel debugging ( https://en.wikipedia.org/wiki/Time_travel_de
49.
▲
by
mark_undoio
2y ago
> You could use a conditional breakpoint within the debugger, but they can be slow and for me historically unreliable, but this little snippet gives you your own conditional breakpoint that works without fail. In theory, you can make con
50.
▲
by
mark_undoio
2y ago
I found this interesting: > I know for some people this is often a terrible UX because of the performance of debug builds, so a prerequisite here is fast debug builds. The reasons debug builds perform badly are kind of mixed, in my exper
51.
▲
by
mark_undoio
2y ago
It looks like they didn't actually need to step the kernel in the end - it just helped understand the bug (which I'd say was in user space - injecting an exception into select() and this preventing it exiting normally - even thoug
52.
▲
by
mark_undoio
2y ago
My reading is that the problem was specifically that they were injecting an exception to recover control from the C library back to their code. It seems like the select() was within its rights to have passed a stack allocated buffer to be w
53.
▲
by
mark_undoio
2y ago
I've heard that too - I've never had the good fortune to with on a codebase where the was practical though. I've never satisfied myself that you can't just make a legacy codebase work that way, given enough effort, but
54.
▲
by
mark_undoio
2y ago
You can do something equivalent with time travel debugging since you can get the user with the problem to record, then ship you back a recording (or, if they don't want to, send them a debugger script to extract the logging you want).
55.
▲
by
mark_undoio
2y ago
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 th
56.
▲
by
mark_undoio
2y ago
FWIW if you're stuck on command line GDB it can be worth learning about TUI mode - "layout tui" which gives you side by side code and debug console. It makes command history not work by default but IIRC "focus cmd"
57.
▲
by
mark_undoio
2y ago
Another thing I think leads people to print debugging - which is both a strength and a weakness of the approach: It minimises the mental effort to get to the next potential clue. And programmers are naturally drawn to that because: 1. Tr
58.
▲
by
mark_undoio
2y ago
Print logging is pretty good for concurrency IMO because it doesn't stop the program and because it gives you a narrative of what happened. If you have a time travel debugger then you can record concurrency issues without pausing the
59.
▲
by
mark_undoio
2y ago
For non Linux there's Microsoft's WinDbg integration of their (very capable, as I understand it) time travel debug tool: https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
60.
▲
by
mark_undoio
2y ago
If you use a time travel debugger (rr-project.org, undo.io - where I work, or Microsoft's WinTTD) you can generally just record an application to a file and debug it (with full fidelity) somewhere else. And you don't need a full d
More ›