<joseph_>
teepee InPhase: It turns out that as a result of some bugs in VS Code (and its C++ extension), displaying stdout/stderr during debugging required an unobvious workaround. That consumed most of my day so far. Having now located the OpenGL error, I'm working on it and will update you soon with questions/progress
<joseph_>
In the meantime, I'm bewildered about a GDB problem. I've `set print symbol-loading off`, but the output is still cluttered with many messages like "Loaded '/usr/lib/x86_64-linux-gnu/libOpenGL.so.0'. Symbols loaded." Is this a common problem, or am I using the wrong option? Fortunately this is just mildly annoying but I thought I'd ask anyway
<InPhase>
joseph_: I've never seen anything like that in the Qt Creator debugger (which is free, ignore their attempts to pretend it's not free and grab the free download), if you want to try a different tool.
<InPhase>
joseph_: Although as a programming tip, with some training on doing so, I think it is highly beneficial to minimize time spent in a debugger, and adopt a good system of print debugging where you dump out to console (either stdout, or for something like OpenSCAD you can temporarily print to the console in program) information that you want to see the values of. This lets you see a longer flow of program
<InPhase>
state rather than snapshots of time like you might see in a debugger, and it can be a more descriptive pile of information that you can scroll up and down in with a text editor, or things like that.
<InPhase>
joseph_: The only follow-up rule is then to just be mindful to monitor git diffs and don't commit print debugging lines. :)
<InPhase>
joseph_: In some cases, on complicated items, you can add things as debugging outputs that stay in as long as you wrap them up properly so that they are only enabled with debug prints. The corefinement work was an excellent example of using extensive print debugging to the internal console to track the complexities of what was going on, and then they were removed from display in the end. But, you
<InPhase>
should always feel free to liberally add lots of print debug statements on a temporary basis, and then purge them right after, to get as much visibility into the flow of the program or the state and progression of things going wrong as needed.
<InPhase>
joseph_: The reason this is superior is that the time spent typing out a single line of print code pays back multiples because you leave a set of lines in as you go up the code flow and add in more lines, and then when you're done you see the whole path and you don't have to keep jumping around between breakpoints to wrap your head around the data flow. You just see it all at once, and you instantly
<InPhase>
see it change and fix itself as it's fixed, or go into intermediate almost fixed states.
<InPhase>
Then deleting them is a trivial time expense.
J1A8464 has joined #openscad
J1A84 has quit [Ping timeout: 252 seconds]
<ali1234>
tbh breakpoints leave a similar trail
_xxoxx has joined #openscad
Junxter has quit [Ping timeout: 268 seconds]
oldlaptop has quit [Ping timeout: 255 seconds]
Virindi has quit [Ping timeout: 246 seconds]
oldlaptop has joined #openscad
fling has quit [Remote host closed the connection]
Virindi has joined #openscad
_xxoxx has quit [Quit: Leaving]
fling has joined #openscad
ur5us has quit [Ping timeout: 268 seconds]
Junxter has joined #openscad
ViktorasCNC has joined #openscad
ViktorasCNC has quit [Client Quit]
drfff has joined #openscad
trashbird0 has joined #openscad
drkow has quit [Ping timeout: 268 seconds]
trashbird has quit [Ping timeout: 240 seconds]
trashbird0 is now known as trashbird
Junxter has quit [Quit: Leaving]
drkow has joined #openscad
drfff has quit [Ping timeout: 246 seconds]
oldlaptop has quit [Read error: Connection reset by peer]
oldlaptop has joined #openscad
<Scopeuk>
breakpoints don't let you rewind from the problem in quite the same way (I know visual studio can step backwards with the right options). both have their place. for crash bugs and out of bounds memory etc debuggers are invaluable particularly memory breakpoints, but a lot of the time they just slow things down, particularly if you are interacting
<Scopeuk>
with a gui thread with a breakpoint in a draw call
<Scopeuk>
they are complimentary tools not hard equivilents
<teepee>
gcc has backward execution too, but I've never used that so far
<Scopeuk>
I think I once started setting it up with visual studio and gave up about 12 settings in. conceptually it sounds like it would be a nice shortcut compared to running again with an earlier breakpoint. in practice *shrug*
<Scopeuk>
I suppose potentially great to wind back from a crash at an unknown location
<Scopeuk>
what happened, how did I get here
<teepee>
yeah, I've seen an example with CLion and it looked quite impressive. Now I'm hoping updated C++ support finally makes it into NetBeans sometime in the next 20 years ;-)
fling has quit [Remote host closed the connection]
fling has joined #openscad
KimK has quit [Ping timeout: 255 seconds]
J1A8464 has quit [Quit: Client closed]
J1A846495 has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 268 seconds]
teepee_ is now known as teepee
snaked has quit [Ping timeout: 268 seconds]
Junxter has joined #openscad
Guest63 has joined #openscad
J1A846495 has quit [Quit: Client closed]
J1A846495 has joined #openscad
Junxter has quit [Read error: Connection reset by peer]
Guest63 has quit [Quit: Client closed]
J1A846495 has quit [Quit: Client closed]
J1A846495 has joined #openscad
snaked has joined #openscad
little_blossom has quit [Ping timeout: 246 seconds]