Silverfrost Forums

Welcome to our forums

Plato & SDBG breakpoints

12 Aug 2010 1:50 #6769

OK, here's a very simple example of the sort of thing I am talking about (Plato v4.3.0, FTN95 v5.5).

Save the code below as a file and make a project with it.

        program platosdbg
        integer i
        i = 0
        i = i + 1
        stop
        end

Open Plato, open the project. Under Tools-Options, make sure that 'Integrate with SDBG' is unchecked.

Click the Continue Debugging green triangle control. SDBG will open up and highlight line 3 in red to show it is currently active line.

Click line 4 and toggle a breakpoint with F2. The line will be highlighted grey to indicate an active breakpoint).

Click Run control. Program will break at line 4, now highlighted magenta (combination of grey for breakpoint and red for active line). Click Run again to get to end of program. Close SDBG. Control returns to Plato, which now displays a dark red splodge against line 4 in the left hand grey margin, to indicate the presence of a breakpoint.

Click the Continue Debugging green triangle control again. SDBG will open up and highlight line 3 in red to show it is currently active line. No grey highlight to indicate the breakpoint on line 4, but it is still there. Click Run and program will break there, with line highlighted red, not magenta. Furthermore, the breakpoint can not be removed within the IDE. F2 has no further effect on that line. On any other executable line, F2 will toggle a breakpoint on and off, but not line 4. Plato still knows about it and displays it, SDBG knows about it but does not display it, and F2 will not remove it. Neither will Cancel All Breakpoints. The only way to kill it is by editing the ini file.

Going to see if I can illustrate 'This is not a line that can be breakpointed' now.

12 Aug 2010 2:30 #6770

Going to see if I can illustrate 'This is not a line that can be breakpointed' now.

Well, that was easy 😃

As before, make project with code below, and open in Plato, 'Integrate with SDBG' unchecked.

        program platosdbg
        integer i
        i = 0
        i = i + 1
!        
        stop
        end

Click the Continue Debugging green triangle control. SDBG will open up and highlight line 3 in red to show it is currently active line.

Click line 4 and toggle a breakpoint with F2. The line will be highlighted grey to indicate an active breakpoint).

Click Run control. Program will break at line 4, now highlighted magenta (combination of grey for breakpoint and red for active line). Click Run again to get to end of program. Close SDBG. Control returns to Plato, which now displays a dark red splodge against line 4 in the left hand grey margin, to indicate the presence of a breakpoint.

Delete line 4. NB dark red splodge is not deleted along with line, as it should be, it shifts down to next line, which is a comment line. Thus doing the impossible and breakpointing an unbreakpointable line.

Click the Continue Debugging green triangle control again. SDBG will open up and, before displaying any source code, (correctly) point out that 'This is not a line that can be breakpointed'.

17 Aug 2010 4:51 #6788

I have had a go at this and so far I have managed to reproduce 2 of the 3 problems and I have fixed one of the two I have reproduced.

Have you tried switching on the SDBG integration? If it works OK for you it will avoid the display problems in SDBG because the source files are displayed in Plato when this option is set.

18 Aug 2010 8:38 #6795

Well done Paul, that's great news. I haven't tried switching SDBG integration back on since I reported major problems in the SDBG breakpoints thread. But I've been using Plato and SDBG full-time for the last two days so I know how they are currently behaving when unintegrated. I'll have another go shortly and report back.

18 Aug 2010 2:03 #6797

OK, here's a preliminary report. Not expecting anything to be doable about it at this stage. I am still getting sdbg access violations when I tick the box to integrate it with Plato, and not if I don't. I'm prepared to believe it's my code that's ultimately responsible, but even if so, if it'll compile and run, it should not be capable of taking down sdbg.

Can't get a reproducible handle on it yet. Currently my impression is that from a clean boot, with integration specified, I can get the access violation. If I then try and run again, events are unpredictable e.g. sdbg shutting down abruptly, or sdbg opening up it's little black box without any sign of the source in the debugger - but I don't seem to get the access violation again until I reboot.

I have two screenshots of access violations now:

http://i36.tinypic.com/124esua.jpg

http://i33.tinypic.com/6t35ea.jpg

20 Aug 2010 5:25 #6801

I have now managed to fix two of the original bugs. Specifically the problem when deleting a line with a breakpoint and the problem about breakpoint lines not appearing as grey in SDBG.

I think that this is all I can do until the next release because the latter fix may well solve a number of related problems.

20 Aug 2010 4:28 #6808

A high leverage bugfix - the best sort 😄 Excellent news. 05:25!? I don't know if you stayed up all night doing this or got up very early to post about it but either way I hope you have a good weekend off.

Please login to reply.