• Crow@lemmy.world
    link
    fedilink
    arrow-up
    99
    ·
    1 year ago

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

        • erogenouswarzone@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          arrow-down
          1
          ·
          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.

      • AeroSoap@lemm.ee
        link
        fedilink
        arrow-up
        26
        ·
        1 year ago

        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.

          • Hazzia@discuss.tchncs.de
            link
            fedilink
            arrow-up
            4
            ·
            1 year ago

            I also work with 20 year old spaghetti code, but my software is primarily middleware and debuggers aren’t allowed on the full system where I’d actually be able to reproduce the issue. Insane amounts of logging statements have become my most treasured tool.

        • erogenouswarzone@lemmy.ml
          link
          fedilink
          arrow-up
          5
          ·
          1 year ago

          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.

          • AlexWIWA@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            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

      • CanadaPlus@lemmy.sdf.org
        link
        fedilink
        arrow-up
        2
        ·
        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@lemmy.world
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        1 year ago

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

    • Atiran@lemm.ee
      link
      fedilink
      arrow-up
      26
      ·
      1 year ago

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

    • erogenouswarzone@lemmy.ml
      link
      fedilink
      arrow-up
      22
      arrow-down
      1
      ·
      1 year ago

      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.

    • Tsuki@beehaw.org
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      Dude, literally me. Whenever my friends or my brother’s friend come to my room, I opened up a few terminals with only one of them is actually for coding and they thoight I could hack someone’s Facebook account or something LMAO.

      Yes I live in Southeast Asia

  • Shugzaurus@lemmy.world
    link
    fedilink
    arrow-up
    50
    arrow-down
    1
    ·
    1 year ago

    OMG, of all the memes I read all day long, this had to be the one to actually make laugh hard.

      • catshit_dogfart@lemmy.ml
        link
        fedilink
        arrow-up
        24
        ·
        1 year ago

        Heck I remember when you had to read “bleep bloops”. POST codes came in beeps, and that’s how you knew why the computer wouldn’t start.

        Sometimes I miss em, wish it gave those in addition to the modern indicators. Then I could just tell without even looking.

          • janNatan@lemmy.ml
            link
            fedilink
            arrow-up
            11
            ·
            1 year ago

            Yes. My latest mobo has the pins for a POST speaker, but didn’t actually come with one. Installed it though and it works.

            • catshit_dogfart@lemmy.ml
              link
              fedilink
              arrow-up
              3
              ·
              1 year ago

              Now I’m wondering if my board supports one. I think it’d be cool if my big fancy custom cooling loop gaming build sounded like it’s from the early 90s.

              • gliide@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                Most boards still do. I have a couple x570 boards lying around that do, and my friend just got an x670e board that has one. They all have the setting in the BIOS for the POST beep as well, and you can set it up in your OS to beep at a specific frequency/duration for notifications.

            • SpaceNoodle@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              I didn’t even bother checking on the last box I built. I know I’ve got at least one proper speaker and one piezo in a crate somewhere.

          • dan@upvote.au
            link
            fedilink
            arrow-up
            3
            ·
            1 year ago

            Some motherboards have a tiny piezoelectric speaker soldered on, which replaced the larger speakers that used to be used. It’s becoming less and less common though.

            • peopleproblems@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              1 year ago

              My current mobo has LED post codes.

              I hate it with a passion. The manual doesn’t list that the CPU led and MEM led are lit when the +5V rail is too low from too much load on it from the USB devices.

              though thinking about it I should probably figure out WHY that’s a problem

              • dan@upvote.au
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                1 year ago

                Yeah the LEDs can be confusing. I like the fancy systems that have an eight-segment LED display (those basic ones that can show numbers and some letters) that show an error code. My work PC (a Lenovo ThinkStation) has the error code display on the front of the PC so you don’t even have to open it to determine the issue.

          • notthebees@reddthat.com
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            My b350 board supported that style of speaker. Newer machines apparently use the start button led in some cases.

  • bagfatnick@kulupu.duckdns.org
    link
    fedilink
    arrow-up
    41
    ·
    1 year ago

    I can really emphasise with Samir. Working in healthcare I’m basically limited to just the Office applications. However in the past few years I’ve been able to cook up solutions by reading / writing to file based databases, and using VBA to generate and bind to HTML contents on the fly for the built in IE11 instance. It’s as close to getting to some kind of web-stack within the confines of IT Sec in healthcare.

    • CoderKat@lemm.ee
      link
      fedilink
      arrow-up
      10
      arrow-down
      1
      ·
      1 year ago

      Just a heads up, I think the word you’re looking for is empathize.

      • bagfatnick@kulupu.duckdns.org
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        For the backend I used the ADO library to create a MSAccess DB on a shared network folder. Then it’s a matter of using VBA to generate SQL commands to same library to read / write records from the DB.

        For the frontend, I use VBA to generate a HTML document from the fetched data. For the IE control in a user form, you can then write the HTML to it. During this process you can bind local VBA variables to any of the html elements in the page.

        A common flow would be:

        • User clicks an element in a table
        • simple JS on the page does some calculation, stores a value in a hidden input and clicks it.
        • the user form variable detects the click in the monitored element, reads the changes, and acts on it.

        I also have VBScript to act as the launcher by copying the excel file to the local machine, and launching the local copy. This solves the concurrency issue.

    • quink@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Working in healthcare I’m basically limited…

      Here I was expecting you to start talking about MUMPS.

    • russjr08@outpost.zeuslink.net
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Ahaha, yes. I lost it and found it hilarious when I got to that part of the picture, then went “Hey wait a second… that’s me!”

  • Atiran@lemm.ee
    link
    fedilink
    arrow-up
    24
    ·
    1 year ago

    I have worked with most of these people at one point or another. I used to sit next to an old architect like walters. He had so many patents the company only recognize him on every 10th one.

  • ComradeSharkfucker@lemmy.ml
    link
    fedilink
    arrow-up
    24
    arrow-down
    2
    ·
    1 year ago

    As someone with ADHD I am a mix of hackerman and tharg. Unfortunately the Adderall just makes me barely function and Ive never actually hacked anything