Hi, has anybody of you ever seen a feature as described in the post in your environment?

Thank you

Update: As some readers appear to have skimmed the text, please feel free to point out possible accessibility issues, poor choices of words, etc.

  • bad_alloc@feddit.de
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    Interesting idea! Although it seems to be very invasive. If it really detours code the breakpoint suddenly modifies execution. Most debuggers seem to bebuilt as pure measurement tools. And i have the feeling for good reason: Understanding when the code will be executed is a big part of debugging. And the need to detour suggests the code is poorly debuggable.

    • TheCee@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      And i have the feeling for good reason: Understanding when the code will be executed is a big part of debugging.

      True. If I forget the detour points from a previous debugging session, I’m going to have a bad time.

      And the need to detour suggests the code is poorly debuggable.

      Indeed. Unfortunately that’s nothing you get to choose, so, the more important are better tools.

    • TheCee@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      There is a link in the title of this post.

      Out of curiosity: Is this a discoverability issue? Have you browsed this from a non-lemmy instance or in an app?

      • Lodra@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        Oh super interesting. I’m using Mlem and the title is not a link for me!

        Seems I should go search the github issues and see if it’s reported yet

        • TheCee@programming.devOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          1 year ago

          Good idea. The lemmy UI isn’t quite done, either. When I posted this blog post it seemed to imply that you additionally can post an image. But then URI gets replaced by the image URI… So I can vaguely relate how the Mlem devs might have gotten confused.

    • ollien@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      The UI is a bit confusing here. This is a link post with a body. Click the title of the post to go to the linked blogpost

  • bad_alloc@feddit.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    Turns out it exists in gdb, although in a limited scope!

    #include <iostream>
    
    int main() {
      int a = 0;
      std::cout << "before: " << a << std::endl;
      a += 1;
      std::cout << "after: " << a << std::endl;
      return 0;
    }
    

    Compile with g++ -g and run gdb a.out

    (gdb) run
    before: 0
    after: 1
    [Inferior 1 (process 10976) exited normally]
    (gdb) break 1
    Breakpoint 1 at 0x5555555551d5: file main.cpp, line 6.
    (gdb) run
    Breakpoint 1, main () at main.cpp:6
    6	  int a = 0;
    (gdb) jump +3
    Continuing at 0x55555555521b.
    after: 0
    [Inferior 1 (process 10979) exited normally]
    

    See here for documentation

    • zygo_histo_morpheus@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      Many debuggers have a set next statement kind type of functionality, but with gdb you can script it so that it performs the jump automatically, like the article suggests:

      break 1
      commands
      jump +3
      end
      
      • TheCee@programming.devOP
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        That’s pretty cool. I always wondered why gdb has a scripting interface, now I’m curious what other cool user scripts one can do through it.

    • TheCee@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 year ago

      Actually I’ve been working with VS the last X years and I’m pretty sure dotnet doesn’t have this feature. Sure, you can set the next statement, but I wouldn’t know of a simple way to say ahead of starting a debug compile “Ye, I want to skip those lines and takes this branch.” Other than changing the source code, that is.

  • DigitalBits@lemmy.fmhy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Yes, visual studio lets you do this. You can drag the marker on the line of code that it’s paused at, and move it around. There’s probably restrictions, however it works in most simple cases.

    A link here indicates that it’s also possible in VS Code, however it may be C#/C++ only.

    • TheCee@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      You can drag the marker on the line of code that it’s paused at, and move it around.

      That is not the feature I described, though. I’m aware of CTRL + SHIFT + F10, but the feature description is basically a simple way to automate setting the next statement.

      Be honest: Is there an issue with the representation of the page or did you skip those parts?

      • DigitalBits@lemmy.fmhy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Ah, I see. I didn’t see the bit about it being a breakpoint (detour point?). That’s what I get for skim reading rather than comprehending it. Visual studio will let you do this, but it’s a manual step, by combining a normal breakpoint and an execute next statement, and you’d have to do this each time you hit the breakpoint.

        Having it happen automatically? A fairly niche feature, but I can see a few uses for it. The component features are already there, so I don’t think it would be difficult to implement in a debugger that already supported execute next statement.

      • giloronfoo@beehaw.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        It would be handy if I needed it in a loop that was going to repeat many times.

        For most cases, I wonder if setting it up would take more time than hitting the brakepoint and moving the pointer manually.

        I already rarely use conditional breakpoints for the same reason.

        • TheCee@programming.devOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          I already rarely use conditional breakpoints for the same reason.

          I feel you. It’s annoying how the good stuff for debugging is hidden in some crappy menus in VS and IntelliJ by default.

          About detour points: The second and third version shown in my post would be one keystroke. The first one is probably not worth it, unless they could be set in some sort of modal workflow, similar how setting tabbing order works for Windows Forms.

    • giloronfoo@beehaw.org
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Visual studio attached to Internet Explorer was able to do this with JavaScript too. I miss that feature in chrome/VSCode.