|
TheFluff posted:why do people not use interactive debuggers? literally my first instinct when i'm asking myself "hey hold on what's going on here" is to launch a debugger on it. meanwhile when i'm pairing with my coworkers they, like, start running tests and adding print() statements to poo poo, and when i ask them "hey can you run it in a debugger" they go "uuuuh, haven't really gotten around to setting that up...". even really experienced people who are definitely better programmers than me do it. weirds me the gently caress out. this all day i pretty much dev a majority of the time through the ipython and ipdb traces. Also doing browser stuff with selenium turns from a chore into kind of a fun and intuitive flow with an interactive interpreter: messing around with different xpaths/whatever in the terminal on-the-fly and then just copying lines that worked from your interpreter history into your final script
|
# ? Nov 17, 2018 19:41 |
|
|
# ? Oct 14, 2024 06:02 |
|
the platform I develop for doesn't have a debugger or breakpoints, I wish I could use a debugger
|
# ? Nov 17, 2018 20:09 |
|
(please remember that this is a safe space for terrible programmers when you read my question, im sorry) if the code needs a debugger to debug it doesnt that mean it's too complicated in the first place? i don't ever use debuggers because everything is written in such a way that it's all unit-testable and i dont need the whole thing to be running to find bugs
|
# ? Nov 17, 2018 20:16 |
|
Corla Plankun posted:(please remember that this is a safe space for terrible programmers when you read my question, im sorry) very often production software is complex enough that you can’t hold every execution path in your head at once, and interactions between components are the source of way more problems than bugs within a single function/class/whatever. integration tests help but you’ll never cover every scenario my top use cases for debuggers: 1) doing things I *could* do with logging, but with a 100x faster turnaround and less info to sift through 2) poking state at runtime to force a failure 3) figuring out what the gently caress type a variable is. mostly in dynamic languages, but sometimes in Java if there’s an interface or inheritance tree that has more than like 2 things in it
|
# ? Nov 17, 2018 20:34 |
Feral Integral posted:this all day yea i do ipython stuff a lot, not sure if it counts as debugger. run script interactively until the point of failure and then prepare your balls for teh door
|
|
# ? Nov 17, 2018 20:34 |
|
Corla Plankun posted:(please remember that this is a safe space for terrible programmers when you read my question, im sorry) sometimes i don't know what data is going in to a thing sometimes i'm just too lazy to understand the code without running it sometimes it's useful being able to pause execution while i look at what's happened in the db
|
# ? Nov 17, 2018 21:06 |
|
also our code can only really run in docker (compose for integration tests) so adding and then remembering to remove the debug port forwarding is another hassle
|
# ? Nov 17, 2018 21:08 |
|
back when I first joined Apple I was amazed that everyone just debugged everything at the assembly level with MacsBug because it could handle debugging interrupt-time code since I have a personal license for Jasik’s Debugger, I installed that on my Quadra at work and it was wonderful to have source for anything and everything while I was debugging
|
# ? Nov 17, 2018 22:06 |
|
eschaton posted:back when I first joined Apple I was amazed that everyone just debugged everything at the assembly level with MacsBug because it could handle debugging interrupt-time code before you return to 1997, I have some terrible news for you about everything
|
# ? Nov 17, 2018 22:35 |
|
eschaton posted:back when I first joined Apple I was amazed that everyone just debugged everything at the assembly level with MacsBug because it could handle debugging interrupt-time code
|
# ? Nov 18, 2018 00:59 |
|
toiletbrush posted:MacsBug was where I learned just enough assembly to NOP out a bunch of stuff in Carmageddon so that the enemy cars would never die, no matter how much I smashed them up, so I could go on smashing them forever lol nice
|
# ? Nov 18, 2018 01:00 |
|
redleader posted:sometimes i don't know what data is going in to a thing all of the above, plus: sometimes i changed something in the returned data from the db because it "feels like it will work" and I need to step through a load of iterations to see if it actually does (it's 50/50) Powerful Two-Hander fucked around with this message at 01:42 on Nov 18, 2018 |
# ? Nov 18, 2018 01:34 |
|
uncurable mlady posted:that said 'effective logging and metrics' is also a skill that isn't taught very well I worked on a website that somehow lived for 5 years without anybody doing application level debugging. There just wasn't any framework placed inside whatsoever. What developers did when they wanted to figure out what was happening in its complex internals was to Jerry rig a call to save strings into a database table on their local development environments. There was no such thing in production so production was this magical black box of poo poo whenever anything went wrong. When I asked them where's the logging they pointed me to this "database row change tracker" which was this giant convulted extension to the ORM that hijacked delete/update calls to create an XML representation of the table before update, do the update, create an XML representation of the table after update, then figure out what data changed. So what you had was this table full of information such as "value 1 has changed to 0", or "value Bob has changed to Bobb" but you could never figure out the INTENT of the change. God help you if one update affected multiple rows of data since there was no way to link them together.
|
# ? Nov 18, 2018 02:12 |
|
gonadic io posted:also our code can only really run in docker (compose for integration tests) so adding and then remembering to remove the debug port forwarding is another hassle you can still open the port manually using iptables
|
# ? Nov 18, 2018 02:13 |
|
floatman posted:I worked on a website that somehow lived for 5 years without anybody doing application level debugging. what the gently caress
|
# ? Nov 18, 2018 03:59 |
|
I'm trying to learn of good ways to debug embedded C lately, it's kicking my rear end
|
# ? Nov 18, 2018 06:07 |
|
Symbolic Butt posted:I'm trying to learn of good ways to debug embedded C lately, it's kicking my rear end remote GDB
|
# ? Nov 18, 2018 07:45 |
|
uncurable mlady posted:before you return to 1997, I have some terrible news for you about everything the incredible future of 1997? surely by then everyone will be using Copland!
|
# ? Nov 18, 2018 08:20 |
|
toiletbrush posted:MacsBug was where I learned just enough assembly to NOP out a bunch of stuff in Carmageddon so that the enemy cars would never die, no matter how much I smashed them up, so I could go on smashing them forever 4E71, bicth!
|
# ? Nov 18, 2018 08:22 |
|
ratbert90 posted:remote GDB LLDB via remote GDB protocol
|
# ? Nov 18, 2018 08:25 |
|
comedy option: GDB with Apple’s MacsBug-for-GDB package, which doesn’t just provide commands but a complete MacsBug-style UI
eschaton fucked around with this message at 08:31 on Nov 18, 2018 |
# ? Nov 18, 2018 08:28 |
|
spent several hours last week wrestling with tomcat and intellij to get a tomcat install that intellij could run, and then a run config that would run and not barf about quotes being present/not present, so i could debug a thing for five minutes. most likely i won't need to debug that thing again for months if ever. it sucked other point in favor of debugging by reading logs is that logs are what you have in prod and going straight from error log to failing test to fix is the best
|
# ? Nov 18, 2018 09:20 |
|
floatman posted:I worked on a website that somehow lived for 5 years without anybody doing application level debugging. reading this post made me feel stressed
|
# ? Nov 18, 2018 11:21 |
|
Kevin Mitnick P.E. posted:spent several hours last week wrestling with tomcat and intellij to get a tomcat install that intellij could run, and then a run config that would run and not barf about quotes being present/not present, so i could debug a thing for five minutes. most likely i won't need to debug that thing again for months if ever. it sucked I'm theory intellij can attach to a running process's debug port, so you can start it yourself I'm practice if intellij can't compile it then debugging is useless so idk
|
# ? Nov 18, 2018 13:55 |
|
Powerful Two-Hander posted:reading this post made me feel stressed Don't get me wrong, my current job is great, except for the one main thing which is the codebase for it. Designed by idiot hellfucker with a hard-on for databases, and the more and more I uncover, the more I realised for all the poo poo they laud aforementioned idiot for his databases, turns out his databases are just as loving bad as his software (lmao "custom" ORM overrides that cast every value of plang into a unicode string. This means all nulls become 0s when shoved into into columns, also casting ints into unicodes means database has to cast it back, row by row, to do comparisons.) I'm just barely contained rage on most days.
|
# ? Nov 18, 2018 14:50 |
floatman posted:Don't get me wrong, my current job is great, except for the one main thing which is the codebase for it. piss holy gently caress
|
|
# ? Nov 18, 2018 15:36 |
|
Symbolic Butt posted:I'm trying to learn of good ways to debug embedded C lately, it's kicking my rear end debug pins and a logic analyzer, the print statements of embedded
|
# ? Nov 18, 2018 15:51 |
|
floatman posted:Don't get me wrong, my current job is great, except for the one main thing which is the codebase for it. A few years ago I was on a project where we built our own custom ORM. There were no one-to-many relationships between entities in the db - every relationship was modelled in the schema as a many-to-many with a join table which made everything atrocious and meant that genuine many-to-many relationships had hilariously long convoluted table names. There were also no constraints whatsoever and poo poo loads of code all over the place to decide how to navigate a relationship and wether it was 'fooToBar' or 'barToFoo' etc and poo poo broke silently or in strange ways if it got it the wrong way round. The lead and several other devs at the time insisted it was the only way it could possibly work and that it 'wasnt that bad'. The second he left I ripped all of that poo poo out and it took literally a day to get the whole application working just fine with a perfectly normal looking schema with like foreign keys and constraints and everything. By the time the project was done, it was actually a pretty decent needs suiting ORM.
|
# ? Nov 18, 2018 16:10 |
|
Phobeste posted:debug pins and a logic analyzer, the print statements of embedded lol, look at this guy with his fancy poo poo. If it's truly embedded, you blink LED's or make beeps, or in one of my cases, toggle a spare pin on the processor and watch it on the oscilloscope (because no LED's or buzzers were available on the board)
|
# ? Nov 18, 2018 16:23 |
|
floatman posted:Don't get me wrong, my current job is great, except for the one main thing which is the codebase for it. pwnd
|
# ? Nov 18, 2018 17:24 |
|
ratbert90 posted:lol, look at this guy with his fancy poo poo. yes, that would be what i said. try using a logic analyzer like a saleae though it's a little better at the digital workloads and long capture times
|
# ? Nov 18, 2018 17:35 |
|
Phobeste posted:yes, that would be what i said. try using a logic analyzer like a saleae though it's a little better at the digital workloads and long capture times logic analyzers own and I wish I had more reasons to use them
|
# ? Nov 18, 2018 18:11 |
|
also I wish the saleae instruments worked with differential signals though
|
# ? Nov 18, 2018 18:13 |
|
my stepdads beer posted:hm we use confluence for this. it's like perl where it's write only and no one reads it at old job we used confluence for everything: specifications, brainstorming, meeting minutes, internal procedures, and all documentation for customers (product manuals, faqs, quick start guides, etc.). it was invaluable. I hate to think what clownshoe operation you run hackbunny fucked around with this message at 22:34 on Nov 18, 2018 |
# ? Nov 18, 2018 22:32 |
|
My issue with debuggers was, learning gdb/or figuring out what gui frontend is good for gdb. My first language was C++ in college, it sucked I never got beyond making useless console apps with it. Now I'm working with C#, when it comes to writing C#, I love the debugger built into visual studio, it's way better than using console.writeline to sort something out.
|
# ? Nov 18, 2018 23:10 |
|
moonshine is...... posted:My issue with debuggers was, learning gdb/or figuring out what gui frontend is good for gdb. My first language was C++ in college, it sucked I never got beyond making useless console apps with it. Now I'm working with C#, when it comes to writing C#, I love the debugger built into visual studio, it's way better than using console.writeline to sort something out. hot take: the gdb protocol is good
|
# ? Nov 19, 2018 13:57 |
|
Arcsech posted:very often production software is complex enough that you can’t hold every execution path in your head at once, and interactions between components are the source of way more problems than bugs within a single function/class/whatever. integration tests help but you’ll never cover every scenario it me i got real lucky with one of my current projects when it comes to debugging. it's composed in a way that i can write throwaway scripts to reproduce internal bugs. then i can turn the script into a spec and run it through a debugger while i fix it unsurprisingly, none of my other projects make it that easy
|
# ? Nov 19, 2018 16:45 |
|
The GUI front end for GDB is either Eclipse CDT or CLion.
|
# ? Nov 19, 2018 16:49 |
|
any new programmer would be reasonably scared off of debuggers if they thought they all worked like gdb or lldb on the command line
|
# ? Nov 19, 2018 18:11 |
|
|
# ? Oct 14, 2024 06:02 |
|
brap posted:any new programmer would be reasonably scared off of debuggers if they thought they all worked like gdb or lldb on the command line my friend let me introduce you to debugging vb6->mumps remote procedure calls
|
# ? Nov 19, 2018 18:55 |