Debug на Clipper приложение

Clipper е популярен софтуер за разработка на DBase III ориентирани приложения от края на 80-те и 90-те години.

Наложи се да направя промени по едно такова приложение и в процеса научих някои неща, които могат да помогнат за в бъдеще (хе-хе-хе – Clipper и бъдеще в едно изречение!).

Като начало се оказа, че стандартно Clipper генерира p-Code – нещо като байткод, който се изпълнява на собствена виртуална машина.

Така че, за модифицирането на изпълнимия файл не трябва да се пишат ASM инструкции, а специфични Clipper p-Code инструкции.

Например JF (jump if false) e 1B, а JMP е 1E. Съответно лесно се променя кода, тъй като инструкциите са еднакъв размер ( по 1 байт)

Друго полезно нещо е, че приложението е 16 битово, съответно не работи под 64 битова OS. Решението е да се използва някакъв вид виртуална машина, като би трябвало и DosBOX да свърши работа в повечето случаи.

В случай, че започне да се появява грешка DOS Error 4, това обикновено означава, че File handles са изчерпани. Могат да се увеличат, като се редактира следния файл:

Полезни ресурси и инструменти:

Информация за Clipper (на руски) http://softclipper.net/soft/clipper/

Декомпилатор Valkyrie – много удобен, показва pCode-a на приложението. Turbo Vision интерфейс. http://softclipper.net/soft-skachat/dekompilyator-dlya-clipper-5-valkyrie-5.html

valkyrie5

Декомпилатор Rescue5 – генерира сорс кода на приложението и е полезен за бърза справка какво прави програмата. http://softclipper.net/soft-skachat/dekompilyator-dlya-clipper-5-rescue5.html