Better Breakpoints Beta: Logpoints, Conditional Breakpoints, & More!

As someone who’s been following up on these new features (esp. logpoints!), I’m super thrilled that they’re finally in beta!
Now that it is out, I can finally also post some of my suggestions that I’d love to see implemented:

  • There should be a keybind shortcut to allow for easier insertion of a breakpoint / logpoint on the current line you’ve selected. Currently it’s a bit tedious to have to press the relatively small space, right click, select to insert a breakpoint and yada yada. Implementing a keybind shortcut for this would make the process so much easier and intuitive in my opinion.

  • Allow for us to save breakpoints / logpoints - either be it relative to another line, or on the absolute scale in terms of the line it was inserted on. I find myself adding print’s everywhere that I keep on adding and then removing because I don’t want clutter debug code, and so allowing to quickly toggle debug points on and off again would be an amazing feature.

Overall, I’m super thrilled for the love which the debugging process has been getting, but for now it’s easier to keep doing something that’s faster - there isn’t enough incentive to stop practicing something that’s basically muscle memory at this point.

Adding onto the above point regarding intuitiveness, I would definitely be interested in seeing an “incremental” logpoint system, where you can simply press a couple of buttons to automatically insert print(1), print(2), print(3) etc., all in a numerical order going off their insertion order - along with a possible prefix / suffix?

13 Likes

I discovered recently that VS can log on a breakpoint and I use this almost constantly already. Logpoints are a huge addition that I will be using all the time.

8 Likes

This is great!
What do you think about a toggle to enable/disable all breakpoints per individual script?
Often times I comment out prints used for debugging so that the output doesn’t get clogged. If I could simply enable breakpoints when I need to debug a specific script and afterwards disable them that would be extremely useful!

6 Likes

Another great addition to the studio script editor! No more having to delete and remove prints to debug my code :grinning_face_with_smiling_eyes:

2 Likes

These are very welcomed additions! Especially logpoints <3

It would also be helpful to have breakpoints for debug.profilebegin() and debug.profileend(). This would help to quickly debug execution times using the microprofiler without having to litter one’s code base with debug method calls or endTime - startTime prints.

2 Likes

I feel like this would be more trivial since anything under < 50-100 microseconds would no longer produce accurate benchmarks or results and have too big of a margin of error. Thus, you should use Boatbomber’s benchmarking plugin instead.

2 Likes

This is wonderful and should considerably cut down time spent debugging!

However, one thing I really desire with the breakpoint system in general is to be able to break at breakpoints in Local Server tests. Currently, breakpoints do not work at all in them. If pausing execution is more complicated to implement for Local Server runs, then I feel that these new logpoints with the “Continue Execution” option checked could work in in them at the very least (currently, even those do not).

3 Likes

I hear you!! Actually, we consider logpoint as a stepping stone to enable debugging in local server, leveraging its “continue execution” attribute as you mentioned.
There are still some technical difficulties we need to address, so it was not in the coming soon section of this post yet. But we are working on it!

4 Likes

Can you add better logging support.
Currently we only have print, warn and error
and we can’t filter them by script or anything pretty advanced

1 Like

Boatbomber’s benchmarking plugin is great for comparing small functions, but games are complicated and unpredictable; the microprofiler is the best way to inspect your code in real time on live servers. Lowering the effort required to create and toggle debug.profilebegin() and debug.profileend() calls would make using them a lot less tedious.

2 Likes

Am i the only one who never uses breakpoints because they don’t get their use

5 Likes

Since it’s unpredictable & arbitrary as you mentioned, I believe a better request would be to see all script execution code in the microprofiler - I.e., not just RunService event callbacks which you’ve tagged with the debug.profile functions, but rather being able to see the (major) impacters without having to spend time finding it out by yourself.

3 Likes

Yeaa me too, print is always enough for me as far as debugging goes!

2 Likes

This update is amazing, your script editor is becoming better and better every update. This update is going to save I and my other’s time by the dozens.

Thanks to everyone who worked on this amazing update! :blue_heart:

1 Like

This looks good!

I haven’t tested the demo yet, but from a UX perspective log points would be a lot more useful if they would auto create a message with all of the variables being read in that line, or at a minimum, the line being executed itself.

3 Likes

A great way to improve debugging on difficult bugs without flooding your script with print statements!

2 Likes

This looks awesome! Will have to give it a try later, maybe I can finally ditch the old “caveman debugging” method if just chucking print() statements everywhere and constantly re-running the game.

2 Likes

I heard there’s a Lua debugger on the horizon…

image

1 Like

Thank you for Logpoints! This is a super awesome set of features and I can begin moving over a bunch of annoying debugger logging stuff over to this asap :smiley:

One thing I am interested in though is allowing developer access to the DebuggerManager() API methods via plugins - there is a lot(1) of developer(2) support(3) for this(4) and it seems like a very easy win! The use case would be studio integrations like Rojo or VS Code Output Sync which would benefit from being able to reflect the current Debugging state and set breakpoints from scripts edited from outside of the Studio environment. This setup is currently used by some big players like Adopt Me and Jailbreak and I’m sure they would appreciate this streamlining of their workflow!

Many thanks for your hard work on making our lives easier to enjoy and create stuff on the platform. Looking forward to watching RDC after the fact to learn more about what is coming!

2 Likes

One step closer to visual studio, awesomesauce. :slight_smile:
I am curious though, are there likely to be any improvements to performance while in debug mode?

A few times when I’ve been trying to step through code and read values or logic - sometimes the intellisense (or whatever it is called) either doesn’t appear or takes a few seconds to do so.

1 Like