• Welcome to Jose's Read Only Forum 2023.
 

Powerbasic-IDE with amazing Debugging features: JK-IDE

Started by Theo Gottwald, February 01, 2018, 09:21:13 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Theo Gottwald

Those who still use Powerbaisc with the builtin IDE may take a look on the new
JK-IDE
It has amazing debugging Features that easily beat anything you know.

Example: "Compile for GPF".
Until now it can happen that a PB-Program just crashes. And now its your turn to find out which line in large Source code is "buggy".
Now using JK-IDE and "Compile for GPF" you will just be shown the Line!

One more Example: "Run to Caret"
You want to test a new Subprogram. Normally you would now start with Breakpoints ... in JK-IDE you just make a "Run to Caret" (thats where the Cursor is right now).
Now the program runs just to the line where the Cursor is and then waits.
You get a Dialog, and you can "Single Step" forward and even watch all Variables.

Scientists have found that 90% of time programmers need for debugging (thats the time they tried to save during the design Phase).
So if you have an IDE with these features, you can save the time. Debugging made easy!
Just AMAZING.

So if you use Powerbasic - go get it, ITS FREE!

############################################
[German] Aus einer Mail von Jürgen, die zeigt was für tolle Features die JK-IDE hat, die es für PB sonst nirgends gibt.

Theo, du hast 6 Möglichkeiten zum Debuggen: GPF, Error, Trace, Olly, Messages und den Debugger selbst. Außer bei Messages kannst du das jeweilige Feature durch "#UTILITY GPF|ERROR|TRACE|OLLY|DEBUG [ON/OFF]" an bestimmten Stellen im Code abstellen.

Jedes Feature funktioniert dadurch, dass in den Originalcode Debuggingcode eingefügt wird, was zu diversen Problemen führen kann. Angefangen damit, dass der Originalcode ggf. fehlerhaft geparst werden könnte (war z.B. heute der Fall, dass eine ganz bestimmte Kombination von Metastatement und Statement dann doch durch die Logik durchgerutscht ist) und durch diese Einfügungen (an der falschen Stelle) der Code nicht mehr kompilierbar ist.

D. h. dieses "ON/OFF" ermöglicht es dann solche fehlerhaften Stellen zu umgehen und trotzdem das Feature (eingeschränkt, denn es geht ja dann nicht überall) nutzen zu können, obwohl im IDE-Code noch ein Bug ist. Das trifft auch auf den "Fixup Overflow" Error zu, den kann man dann ausblenden.

Fixup Overflow ist aber kein Bug im IDE Code, er entsteht z.B. wenn du "short jumps" verwendest (jne short label, jmp short label, etc.), weil durch die Einfügungen die maximale Sprungweite überschritten wird. Das ist nicht anders zu machen - es muss etwas eingefügt werden! Du kannst das auch abstellen, wenn du  bei allen short jumps das "short" herausnimmst, dann gehen alle Debugfeatures meist auch im Assemblercode. Das ist aber meist mühsamer und vermutlich hast du ja aus Performancegründen extra short jumps verwendet. Außerdem kann Assemblercode durch die Einfügungen doch langsamer werden, bei normalem PB Code fällt das kaum ins Gewicht. 

Du kannst also durch "ON/OFF" immer noch mögliche Bugs in der IDE umgehen und du kannst das jeweilige Feature genau da (nicht) einsetzen, wo du es willst/brauchst.
Nachteil: du kannst immer nur eines zu einer Zeit haben, d.h Error und Olly gleichzeitig geht nicht, nur der Debugger fängt auch GPFs ab. Wenn die IDE eine Zeile "#UTILITY GPF" im Code findet, wird sie IMMER Compile for GPF ausführen, auch wenn du nur "normal" kompilierst (<F9> , Menü oder Toolbarbutton). Du kannst jedoch durch Find/Replace diese Zeilen ruck-zuck im ganzen Projekt deaktivieren (durch auskommentieren), ersetzen oder auch ganz entfernen.

Insgesamt kannst du durch gezielten Einsatz der Debuggingmöglichkeiten Bugs sehr schnell eingrenzen und finden. Nicht alles geht immer gleich gut und unter allen Umständen, je nachdem welchen Code du gerade hast. Außerdem kann man mit "ODS/ODX" im Normalfall auch schon sehr weit kommen - einfach an bestimmten Stellen Messages ausgeben oder Variablenwerte anzeigen lassen bringt mich meist schon ans Ziel. Fast immer lasse ich diese ODS/ODX dann auskommentiert im Code stehen, das hilft sehr, falls man doch noch einen Bug findet und erneut nach dem wo und warum suchen muss. Wenn es dann komplizierter wird kommen die anderen Features zum Zug.

Steve Bouffe

I looked at the editor with interest as I'm currently using SED

I compiled my code in sed and got the expected error "Missing Declaration"

When I compile in JKE I see the error show briefly on the bottom pane and then it closes.


Rod Macia

Steve,
On JK-IDE, click the button (bottom on status bar) labeled "Output" green square with white arrow, to toggle on/off the output window with compiler results.