Live data from Hacker News

Coding in the Debugger (2007)

tidyfirst.substack.com

1–10 of 32 posts

Re: Coding in the Debugger (2007)

#2
This is debugger driven development

In programming environments with very powerful debuggers like .NET this is relatively common since it allows you to do a lot of stuff at fly.

Change values, evaluate expressions, change function's code, jump ahead and behind, etc, etc.

Once you try this you'll never want to go back to print-debugging (except for specific cases)

Re: Coding in the Debugger (2007)

#3

This is debugger driven development In programming environments with very powerful debuggers like .NET this is relatively common since it allows you to do a lot of stuff at fly. Change values, evaluate expressions, change function's code, jump ahead and behind, etc, etc. Once you try this you'll never want to go back to print-debugging (except for specific cases)

sometimes though when debugging multithreaded code, tracing/logging is easier to figure out what's going on vs pausing on breakpoints.

Re: Coding in the Debugger (2007)

#4
post #3

This is debugger driven development In programming environments with very powerful debuggers like .NET this is relatively common since it allows you to do a lot of stuff at fly. Change values, evaluate expressions, change function's code, jump ahead and behind, etc, etc. Once you try this you'll never want to go back to print-debugging (except for specific cases)

sometimes though when debugging multithreaded code, tracing/logging is easier to figure out what's going on vs pausing on breakpoints.

>(except for specific cases)

Exactly, that's what I meant

Re: Coding in the Debugger (2007)

#6
post #3

Earlier quoted context omitted.

sometimes though when debugging multithreaded code, tracing/logging is easier to figure out what's going on vs pausing on breakpoints.

>(except for specific cases) Exactly, that's what I meant

I just remembered the Tracepoint feature though (it's been a while since I was working in C++ with visual studio). Even when you can't pause execution to debug it's still better to add your tracing in the debugger rather than having to make code changes.

I was always doing stuff on windows/macOS/iOS/Android client libraries so I was always jealous of linux systems programmers who get to leverage Mozilla's rr tool. That's the coolest debugging tool I've ever seen.

Re: Coding in the Debugger (2007)

#7
post #6

Earlier quoted context omitted.

>(except for specific cases) Exactly, that's what I meant

I just remembered the Tracepoint feature though (it's been a while since I was working in C++ with visual studio). Even when you can't pause execution to debug it's still better to add your tracing in the debugger rather than having to make code changes. I was always doing stuff on windows/macOS/iOS/Android client libraries so I was always jealous of linux systems programmers who get to leverage Mozilla's rr tool. Th…

Sadly rr cannot work on software that makes any kind of call to GPUs, so its usefulness is pretty limited on a lot of larger software. But when it's usable, imo it's amazing.

Re: Coding in the Debugger (2007)

#9
post #3

This is debugger driven development In programming environments with very powerful debuggers like .NET this is relatively common since it allows you to do a lot of stuff at fly. Change values, evaluate expressions, change function's code, jump ahead and behind, etc, etc. Once you try this you'll never want to go back to print-debugging (except for specific cases)

sometimes though when debugging multithreaded code, tracing/logging is easier to figure out what's going on vs pausing on breakpoints.

Which is also supported in IDE debuggers.

Re: Coding in the Debugger (2007)

#10
post #6

Earlier quoted context omitted.

>(except for specific cases) Exactly, that's what I meant

I just remembered the Tracepoint feature though (it's been a while since I was working in C++ with visual studio). Even when you can't pause execution to debug it's still better to add your tracing in the debugger rather than having to make code changes. I was always doing stuff on windows/macOS/iOS/Android client libraries so I was always jealous of linux systems programmers who get to leverage Mozilla's rr tool. Th…

Tracepoints are supported in C++ and .NET, the JVM also has them, although the form depends on which implementation is being used.

Naturally similar stuff also exists in Smalltalk and Common Lisp environments.

Post reply on HN