View previous topic :: View next topic |
Author |
Message |
sparge
Joined: 11 Apr 2005 Posts: 371
|
Posted: Thu Aug 12, 2010 2:50 pm Post subject: Plato & SDBG breakpoints |
|
|
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.
Code: | 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. |
|
Back to top |
|
|
sparge
Joined: 11 Apr 2005 Posts: 371
|
Posted: Thu Aug 12, 2010 3:30 pm Post subject: |
|
|
Quote: | 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.
Code: | 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". |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7929 Location: Salford, UK
|
Posted: Tue Aug 17, 2010 5:51 pm Post subject: |
|
|
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. |
|
Back to top |
|
|
sparge
Joined: 11 Apr 2005 Posts: 371
|
Posted: Wed Aug 18, 2010 9:38 am Post subject: |
|
|
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. |
|
Back to top |
|
|
sparge
Joined: 11 Apr 2005 Posts: 371
|
Posted: Wed Aug 18, 2010 3:03 pm Post subject: |
|
|
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:
|
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7929 Location: Salford, UK
|
Posted: Fri Aug 20, 2010 6:25 am Post subject: |
|
|
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. |
|
Back to top |
|
|
sparge
Joined: 11 Apr 2005 Posts: 371
|
Posted: Fri Aug 20, 2010 5:28 pm Post subject: |
|
|
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. |
|
Back to top |
|
|
|