this post was submitted on 07 Jul 2023
1908 points (98.3% liked)

Programmer Humor

32000 readers
449 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
1908
submitted 1 year ago* (last edited 11 months ago) by [email protected] to c/[email protected]
 
you are viewing a single comment's thread
view the rest of the comments
[–] Crow 100 points 1 year ago (6 children)

Ten years into casual programming and I still don’t know how to use a debugger.

[–] ghariksforge 49 points 1 year ago (6 children)

I believe in a conspiracy theory that nobody uses debuggers.

[–] [email protected] 27 points 1 year ago (2 children)

I have used them occasionally. It's sometimes easier to use logging because you can dump an enormous amount of information and quickly then look through it if you already know what kind of information you want to look at. Debuggers are better when you have no idea what the hell is going wrong and need to get a little bit of info from everything instead of a lot of info from one thing.

[–] [email protected] 17 points 1 year ago (1 children)

I work with 20 year old legacy spaghetti code, the debugger has become one of my most treasured tools.

[–] croobat 7 points 1 year ago

Grep log will outlive us all

[–] [email protected] 26 points 1 year ago (2 children)

console.log counts as “a debugger”, right?

[–] marlowe221 11 points 1 year ago

It does for me!

[–] [email protected] 3 points 1 year ago

Yes, but only because it gives you a link to where that was run. Click the link to the right with filename:lineNumber, and it will open the sources tab to that line. Set a breakpoint and rerun to pause there, then step through the code's execution.

Of course, if you're using minified or processed code, this will be more difficult, in that case figure out how to do it in VS Code.

[–] [email protected] 9 points 1 year ago (1 children)

I use them daily. It makes it so much easier to work with an existing code base

[–] [email protected] 5 points 1 year ago (1 children)

Yep. Once you get the hang of it, you will cringe to think of all the wasted effort that came before. But getting the hang of it takes dedication.

[–] [email protected] 1 points 1 year ago

Thankfully I use python mostly and pycharm makes it easy-ish to get the debugger hooked up to a project. But learning that process definitely took a few days

[–] [email protected] 3 points 1 year ago

Does this include C programmers? I've definitely found GDB to be indispensable in the past (or maybe that's what they would want you to think).

[–] theherk 2 points 1 year ago

After decades of print debugging I finally got dap up and running in vim. It is very nice. Would recommend.

[–] [email protected] 2 points 1 year ago

I can record a video tomorrow if it helps?

[–] [email protected] 28 points 1 year ago

It’s easy, you just step, step, step, step in, or wait, over, or, oops.

[–] [email protected] 21 points 1 year ago (1 children)

Watch a Video or read something because it really is an invaluable tool. But here's a crash course:

Debuggers, or IDEs, let you step through your code in slo-mo so you can see what is happening.

  1. Set a breakpoint - Click to the left of a line of code so a red dot appears. Run your program, and the IDE will execute to that line, then pause.
  2. Look at variables' values - While the execution is paused you can hover over variables before that line to see their value.
  3. Step through the code - See what happens next in slo-mo.
    • Use "Step Into" to enter into a function and see what that code does.
    • Use "Step Over" to not go into a function and continue in the current spot after the function has done its business.
    • Use "Step Out" to exit a function and pick up the execution after it has run. Use this when you're in too deep and the code stops making sense.
  4. See whats in the heap - The heap will list all the functions that you're currently inside of. You can jump to any of those points by clicking them.
  5. Set a watch - Keep a variable in the watch so you can see what its value is at all times.
  6. Set a condition on the breakpoint - If the breakpoint is inside a big loop, you can right-click on the red dot to create a conditional breakpoint, so you write something like x===3 and it will only pause when x is 3.

There are many other things an IDE can do to help you, so def look into it more if you want to save yourself a lot of insanity. But this is a good starting point.

If you're developing for the web use F12 to open web tools, and when an error happens, click the file/line number to see that point in the Sources tab, and you can debug there.

[–] [email protected] 3 points 1 year ago

That sounds really cool

[–] [email protected] 4 points 1 year ago

The only real time I use a debugger is to tell me what line a default occured at.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago)

It can be useful sometimes. Same for print. And logfiles.