Silverfrost Forums

Welcome to our forums

Latest Debuggers

4 Apr 2020 3:20 (Edited: 2 May 2020 10:55) #25142

The latest versions of sdbg and sdbg64 cam be downloaded from this url:

http://www.ftn95.co.uk/ftn95/debuggers.zip

Changes include:

  • sdbg: now shows line numbers and statement locations in margin. Breakpoints can be set by clicking on statement dots
  • sdbg/sdbg64: pause dialog replaced with pause button
  • sdbg/sdbg64 breakpoints can be set whilst debuggee running
  • sdbg/sdbg64 find now prioritises routines with debug information
  • sdbg64 set next statement in same routine
  • sdbg64 support for new run-time error messages in FTN95 8.62
6 Apr 2020 7:24 #25152

Is this an addon to the latest built or any older build? Is next built of compiler including these new features ready for download?

Was the bug fixed causing SDBG64 not to show all valid lines in debugger ? Because 8.61 did not have this bug fixed yet i skipped it and still use 8.50.

6 Apr 2020 8:04 #25153

Also

  1. a while ago in Suggestions here we have discussed some new feature to show in debugger matching Do-EndDo and If-EndIFf . Was work on this started? I remember it was done already in Plato

  2. another suggestion was to show previous line in debugger (just to show it would be enough, the return to previous line when the calculation was already done will probably not always be possible). This is extremely helpful when reading large files with multiple READ statements. If READ failed it is redirected to the label where user will be informed about error but because very many READ statement making individual error label would be impractical. In this case if return back one step would be implemented in SDBG the offending READ would be found in one step: user places stop on line where error message is displayed and waits when READ fails. Then if read fails he just push 'Show previous line' saving hours of pushing 'Next step' button like today

7 Apr 2020 11:58 #25160

The debuggers are largely independent of the compiler and salflib. So you can almost certainly use these debuggers with (for example) FTN95 8.50.

Was the bug fixed causing SDBG64 not to show all valid lines in debugger ? Because 8.61 did not have this bug fixed yet i skipped it and still use 8.50.

The bug has been fixed but the issue is in FTN95 and not the debugger

12 Apr 2020 10:35 #25178

So we can try but we can not really use these new debuggers without also new FTN95...Can the new FTN95 be posted?

14 Apr 2020 3:20 #25186

Tried. This new debugger does not dance well together with 8.50 making crazy jumps and getting into infinite cycling. Will try 861

14 Apr 2020 7:38 #25187

Try 8.62, instead; see http://forums.silverfrost.com/viewtopic.php?p=28656 .

14 Apr 2020 6:28 #25190

I just tried to install 861 and there was a problem to install examples 'An Error occurred while creating file in the destination directory . The system can not find the file specified '. The appropriate directory though exists and all older files are OK. The new ones were not copied there. I clicked Ignore million times during install as there were no other choices just to Retry, Ignore or Cancel installation

The compiler itself looks like was updated. I see the nice features were added to Plato but my current urgent work needs good working SDBG64. So i will update SDBG first with this version. Hopefully the FTN95 from 862 Paul posted today will be compatible with the debuggers.

Just first glance: the Plato new options look finally modern and extremely useful. Was jealous for years when my friends used such options in their Pascal compilers. What it still missing is the button and hot key combinations to Build and if all ended OK immediately start run

14 Apr 2020 7:32 #25192

Dan

The feature that you say is 'still missing' has been there from the beginning.

You may not get it by default (I can check in the morning). If not then you will be able to switch it on from the Settings dialog.

14 Apr 2020 8:38 #25195

The new 862 compiler found me hell amount of errors. One type of frequent errors are my own errors:

*** Error 840: AddedCC_SIZE was ambiguously declared in more than one MODULE,
so cannot be used

Besides that new compiler found other my mistakes when i forgot additional arguments to Clearwin library functions like here

Call sound@(3000) or CALL CLOSEF@(HANDLE)

But i am confused with this type of errors, since i have non-AMD processor (or AMD means something else?) :

    integer function PropertySheet1()     

*** Error 1207: AMD backend failure:Internal error - instruction offset out of range *** Error 1207: AMD backend failure:Internal error - instruction offset out of range *** Error 1207: AMD backend failure:Internal error - instruction offset out of range *** Error 1207: AMD backend failure:Internal error - instruction offset out of range

Are they related to the first type ?

Also this error is also confusing: 2797) use ParallelSpectra *** Error 840: OIC_INFORMATION was ambiguously declared in more than one MODULE, so cannot be used *** Error 840: OIC_ERROR was ambiguously declared in more than one MODULE, so cannot be used *** Error 840: OIC_WARNING was ambiguously declared in more than one MODULE, so cannot be used

What are OIC_INFORMATION, OIC_ERROR, OIC_WARNING ...? I have no such variables

/*** By the way, it's time to make all error messages like these above on one single line, currently they are rudimentally using CGA monitor 80-symbol length or even 1950th era perforated card 80-hole design 😃

/*** This thread is about debugger but my comments/questions are not about debugger because i can not reach the clean code state yet

14 Apr 2020 11:46 #25197

The 'AMD' in the error message is from the 'AMD64' back-end pass of a 64-bit compilation. You will see it sometimes when you have /opt specified in addition to /64, or for a particular set of options that you selected when using the 64-bit compiler. Please construct a reproducer and report the problem. As a workaround, try changing the options for just the file concerned or for a single program unit.

See, for example, a similar bug reported in https://forums.silverfrost.com/Forum/Topic/3709 .

Variable names may get decorated with module names if the variables are module variables. The OIC_xxxxxx names sound as if they are in modules in the body of the compiler, rather than your variables. Perhaps Paul can tell you what those are.

15 Apr 2020 7:19 #25199

Dan

I am concerned about the error report

integer function PropertySheet1() *** Error 1207: AMD backend failure:Internal error - instruction offset out of range

Can you send me code that reproduces this error report? You must be using /64 on the command line. You can probably temporarily use /ignore 1207 as a work-around.

The error report

  1. use ParallelSpectra *** Error 840: OIC_INFORMATION was ambiguously declared in more than one MODULE, so cannot be used

must be in your code - perhaps even in ParallelSpectra or a module USEd in ParallelSpectra.

15 Apr 2020 7:34 #25201

What it still missing is the button and hot key combinations to Build and if all ended OK immediately start run.

This is available in the Settings dialog under General and 'On run always build when changed'.

15 Apr 2020 4:18 #25212

Paul,

  1. Yes, this is /64 bit app.
  2. /ignore seems suppresses 1207 error report
  3. As to another set of multiple errors,

*** Error 840: OIC_INFORMATION

etc I got that such variables are declared in compiler own include files mswin…, I do not use them

I will send the code to you when find the module I by mistake defined twice, hopefully today.

15 Apr 2020 4:34 #25214

Thanks. I can see it now in win32prm.ins.

I wonder if that means that you have 'USE mswin' nested in some way, maybe in a module and also next to a USE for that module. Or maybe in two modules where the two are USEd in the same place.

Can you send a demo please.

16 Apr 2020 3:51 #25217

Paul, I emailed the first reproducer

16 Apr 2020 9:54 #25220

Dan

I have located a regression that caused the false 'Error 1207' and will provide a patch shortly.

I have tried to reproduce the 'Error 840: OIC_INFORMATION...' without success so I will wait for your demo program for this.

16 Apr 2020 6:49 #25226

So when do you edit the parameters file and put there smaller number like Nl=44 does this error 840 still appear?

17 Apr 2020 4:54 #25229

I have sent another reproducer for error 840

17 Apr 2020 8:56 #25230

The failure arises from the use of:

MODULE SomeMod
INCLUDE <windows.ins>
....

then, when SomeMod is used:

USE clrwin
USE SomeMod
....

windows.ins contains information that is also in the clrwin module.

In this case INCLUDE <windows.ins> can probably be removed.

The overlap is tollerated when the INCLUDE is replaced by the equivalent 'USE mswin'.

Please login to reply.