home *** CD-ROM | disk | FTP | other *** search
Wrap
Beschreibungen von MDEBUG V2.00 für die Kataloge ─────────────────────────────────────────────────────────────────────────────── Kurztext (1 Zeile): MDEBUG V2.00 - Speichermonitor incl. Disassembler (TSR) von Bernd Schemmer ─────────────────────────────────────────────────────────────────────────────── Kurztext (formatiert, 2 Zeilen): MDEBUG V2.00 ist ein speicherresidentes Debugging-Tool bestehend aus einem Speichermonitor, einem Interpreter und einem Disassembler von Bernd Schemmer. ─────────────────────────────────────────────────────────────────────────────── Kurztext (formatiert, 3 Zeilen): MDEBUG V2.00 ist ein speicherresidentes Debugging-Tool bestehend aus einem Speichermonitor, einem Interpreter mit eigener Programmiersprache und einem interaktiven und selektiven Disassembler. Autor: Bernd Schemmer ─────────────────────────────────────────────────────────────────────────────── Kurztext (unformatiert, 215 Zeichen): MDEBUG V2.00 ist ein speicherresidentes Debugging-Tool bestehend aus einem Speichermonitor, einem Interpreter mit eigener Programmiersprache und einem interaktiven und selektiven Disassembler. Autor: Bernd Schemmer ─────────────────────────────────────────────────────────────────────────────── Langtext (formatiert, ca. 300 Zeilen): MDEBUG V2.00 Release 01.07.1992 ─────────────────────────────── (c) 1988 - 1992 Bernd Schemmer Kurzbeschreibung von MDEBUG ─────────────────────────── MDEBUG ist ein speicherresidentes Debugging-Tool für PCs unter MS/ PC-DOS. MDEBUG enthält einen Speichermonitor, einen Interpreter mit mit eigener Programmiersprache und einen interaktiven u. selektiven Disassembler. MDEBUG wurde ursprünglich für die Ermittlung von undokumentierten Strukturen des Betriebssystems DOS entwickelt, kann aber vielfältig eingesetzt werden. (z.B. zur Unterstützung bei der Programmierung). MDEBUG richtet sich vor allen an Programmierer/innen mit gutem bis sehr gutem Wissen über ihren PC und dem Betriebssystem MS-DOS bzw. PC-DOS (und an die, die es noch werden wollen). Hardware- und Software-Vorraussetzungen für MDEBUG ────────────────────────────────────────────────── MDEBUG läuft auf jedem IBM-kompatiblen PC/XT/AT/386er. Unterstützt werden alle Graphikkarten in allen Modi mit 80 oder mehr Spalten pro Zeile und 25 oder mehr Zeilen pro Seite. Unter Zuhilfename von Bildschirmtreibern kann MDEBUG auch in den Graphikmodi der einzelnen Graphikkarten aufgerufen werden. MDEBUG benötigt weniger als 16 K Speicher für den residenten Teil (ohne Online-Hilfe und Disassembler), für die Installation werden 64 K freier Speicher benötigt. MDEBUG benötigt MS-DOS bzw. PC-DOS ab Version 3.0. Einsatzgebiete für MDEBUG ───────────────────────── Da MDEBUG speicherresident ist, kann es vorzüglich zur Unter- stützung von anderen Debuggern eingesetzt werden. Zum Testen von eigenen Programmen stellt MDEBUG über den User-Interrupt ein Inter- face zum gezielten Aufruf von MDEBUG und zur Manipulation der internen Daten von MDEBUG zur Verfügung. MDEBUG gestattet auch den Aufruf über jeden beliebigen Interrupt. MDEBUG kann gezielt zur Inspektion und Änderung von Speicher- bereichen im Hauptspeicher eingesetzt werden (z.B. zur Änderung der Daten im BIOS-Segment oder zur Änderung der DOS-internen Datenstrukturen). Damit hierdurch nicht jeder Benutzer Unfug anrichten kann, kann MDEBUG durch ein (jederzeit ein- und ausschaltbares) Passwort geschützt werden. MDEBUG ist über Parameter völlig frei konfigurierbar (z.B. Hotkey, Farbeinstellungen, User-Int, Fensterpositionen, etc). Die aktuellen Einstellungen einer residenten Version von MDEBUG können ebenfalls jederzeit geändert werden. Selbst die Tastenbelegung von MDEBUG kann den eigenen Wünschen bzw. der vorhandenen Hardware angepasst werden. Dokumentation und Online-Hilfe ────────────────────────────── MDEBUG wird mit einer ausführlichen Ondisk-Dokumentation geliefert. Diese beinhaltet neben der vollständigen Beschreibung von MDEBUG auch eine ausführliche Auflistung der Interna von MDEBUG und die vollständige Dokumentation der Interfaces von MDEBUG (User-Int, Bildschirmtreiber und Kommandotreiber, s.u.). Die Dokumentation enthält zudem umfangreiche Beispiele für die Möglichkeiten von MDEBUG. Für die Hilfestellung während der Benutzung besitzt MDEBUG eine leistungsfähige Online-Hilfe. Der Monitor von MDEBUG ────────────────────── Aufbau des Monitorfensters von MDEBUG: ╔═══════════════════════════════ MDEBUG V2.00 ═══════[b*]════════════════════╗ ║ DS:SI Adr.: 23B9:2BCE SE: 23B9 OF: 2BCE Suchen: HelpPC.■■■, ║ ╟──────┬─ Offset: 2BCE [= 48h = #072 = 'H']───────────────┬──────────────────╢ ║ 2BCE │ 48 65 6C 70 50 43 2E 4E 44 58 2C 20 69 73 20 48 │ HelpPC.NDX, is H ║ ║ 2BDE │ 4C 50 20 76 61 72 69 61 62 6C 65 20 73 65 74 3F │ LP variable set? ║ ║ 2BEE │ 20 48 45 4C 50 50 43 2E 4E 44 58 20 4D 61 69 6E │ HELPPC.NDX Main ║ ║ │ ── FS:FO => 561A:EBB5 ────────────────────────── │ ║ ║ EBB5 │ 48 65 6C 70 2E 2E 20 20 20 20 20 20 20 20 20 6A │ Help.. j ║ ║ EBC5 │ 6D 70 20 50 72 6F 67 45 72 72 6F 72 2E 2E 3B 20 │ mp ProgError..; ║ ║ EBD5 │ 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D │ ---------------- ║ ║ EBE5 │ 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2E 2E 6C 31 │ ------------..l1 ║ ╚══════╧══════════════[ (c) Bernd Schemmer 1988 - 1992 ]══╧══════════════════╝ Der Monitor von MDEBUG arbeitet mit zwei unabhängigen Fenstern zur Anzeige von Speicherinhalten. Die Größe der Fenster ist dabei frei variierbar und die angezeigten Speicherbereiche können beliebig gescrollt werden. Angezeigt wird der Speicherinhalt jeweils in hexadezimaler Darstellung und in ASCII-Darstellung. Die Register, aus denen die Startadresse des ersten Monitor-Fensters ermittelt werden sollen, können frei bestimmt werden (z.B. DS:SI, DX:AX). Die Anzeige des Monitors wird von MDEBUG laufend (!) aktualisiert - auch bei der Eingabe von Befehlen im Interpreter und falls keine Eingabe erfolgt. Die laufende Aktualisierung ist natürlich auch abschaltbar. Der Monitor gestattet die Anzeige und Veränderung von beliebigen RAM-Bereichen im ersten Megabyte des Speichers des PCs. (im Hex- oder im ASCII-Modus). Die Suche von bestimmten Zeichenketten ist ebenfalls möglich (incl. Verwendung von Jokern im Suchstring). Außerdem sind im Monitor (u.a.) verschiedene Befehle zum bequemen Durchlaufen von verzeigerten Listen (near, far oder die MCB- Liste) implementiert. Der Interpreter von MDEBUG ────────────────────────── Aufbau des Interpreterfensters von MDEBUG: ╔ Passwort OFF ════════════════════ MDEBUG V2.00 ════[UqI]═════════════════════╗ ║ Befehl: ║ ╟────────┬──────────────────────────────────────────────────M──────────────────╢ ║CS: 31DD│ ╓─────────── Register ─────────────────────────╖ 1 0EB0:0000 LASTBUF║ ║R┬──────┤ ║ AX = 0500 BX = 0000 CX = 0A0D DX = FFFF ║ 2 0974:0000 1. MCB ║ ║1│ 0080 │ ║ SI = 00D3 DI = 00D3 DS = 022C ES = 022C ║ 3 022C:7420 1. DPB ║ ║2│ 31DD │ ║ BP = 2DB2 SS = 022C SP = 09F6 ║ 4 022C:0098 SDL ║ ║3│ D061 │ ║ Flags = ....__I____A__._ ║ 5 0070:01A4 CLOCK ║ ║4│ 0000 │ ║ R0 = $0000000000000000 = 0000 ║ 6 0070:016E CON ║ ║5│ 0000 │ ║ R8 = #24930 (+#24930) = 6162 = 'ab' ║ 7 0DC9:0000 BUF ║ ║6│ 0000 │ ║ Ruecksprung-Adresse = 022C:3FEE ║ 8 0F13:0000 PRet ║ ║7│ 0000 │ ║ Busy-Flag = 01 DIB = 022C:001E ║ 9 0A08:0000 PFileT ║ ╚═╧══════╧═╩═══════════[ (c) Bernd Schemmer 1988 - 1992 ]═╩═╩══════════════════╝ Zur Unterstützung des Monitors besitzt MDEBUG einen leistungs- fähigen Interpreter. Im Fenster des Interpreters werden die Inhalte der Prozessor-Register und die wesentlichen Adressen aus dem DOS- Info-Block angezeigt. Außerdem werden (u.a.) die Inhalte der 9 von MDEBUG zur Verfügung gestellten Hilfsregister angezeigt wobei der Inhalt von mehreren Hilfsregistern in verschiedenen Inter- pretationen angezeigt wird. MDEBUG kann daher z.B. zur Umrechnung von Werten benutzt werden. (binär, dezimal mit Vorzeichen, dezimal ohne Vorzeichen, hexadezimal oder als ASCII-Zeichen). Für kompliziertere Aufgaben besitzt der Interpreter eine eigene Programmiersprache mit mehr als 40 (!) Befehlen (z.B. zur Manipu- lation von Registern oder Speicherstellen, zur Berechnung von Formeln, zum Ausführen von Maschinencode, zur Anzeige der DOS- internen Tabellen und Listen, usw). Auch die Ausführung von Inter- rupts ist über MDEBUG problemlos möglich, wobei das Reentrance- Problem von MS-DOS elegant gelöst ist. MDEBUG erlaubt es u.a. auch, dem unterbrochenen Prozess veränderte Registerwerte zu übergeben oder den unterbrochenen Prozess abzubrechen. Über den B-Befehl können zudem alle Maschinencodes des installierten Prozessor aus- geführt werden. MDEBUG verfügt auch über einen sehr schnellen Befehl zur Suche von beliebigen Bytefolgen im Speicher, wobei in der zu suchenden Bytefolge auch Joker, Prefixe und Intervalle ange- geben werden können. Da mehrere Befehle auch auf einmal ausgeführt werden können und auch Befehle zur bedingten Ausführung von Befehlen und zur Pro- grammierung von Schleifen (REPEAT-UNTIL, DO-WHILE, FOR-DO und Endlos-Schleifen mit Abbruchmöglichkeit) vorhanden sind, können auch kleinere 'Routinen' erstellt und ausgeführt werden. Zur Verkettung von mehreren Befehlszeilen können Befehlszeilen auch in beliebigen Speicherbereichen gesichert und später aus diesen heraus restauriert und ausgeführt werden. Explizite Werte können in allen Formaten mit einer Basis zwischen 2 und 16 (z.B. binär, octal, dezimal oder hexadezimal) oder auch als String eingegeben werden. Natürlich können auch Ausdrücke benutzt werden. Für Ausdrücke sind folgende Operatoren implementiert: - arithmetisch: +, -, /, *, \ (MODULO), - logisch: & (AND), | (OR), ! (XOR) «, (SHIFT LEFT), » (SHIFT RIGHT) <, >, =, ¬ % (Teste Bit) In Ausdrücken können maximal 5 Klammerebenen verwendet werden. Erweiterungen von MDEBUG über Kommandotreiber ───────────────────────────────────────────── MDEBUG gestattet es, die Tastenbelegung und die Befehle über Kommandotreiber beliebig umzudefinieren bzw. neue Tastenbelegungen und Befehle zu implementieren. Zur Shareware-Version von MDEBUG werden schon mehrere Kommando- treiber mitgeliefert. Der auch schon in der Shareware-Version enthaltene Kommandotreiber MDHISDRV.COM stellt z.B. eine History-Funktion für MDEBUG zur Verfügung. Er gestattet es zudem 10 Tasten jeweils mit einer Befehlszeile für MDEBUG zu belegen. Selbstverständlich können die Befehlszeilen und die Puffer von MDHISDRV auch in einer Datei gesichert und später wieder eingelesen werden. Der Disassembler von MDEBUG ─────────────────────────── Aufbau des Disassemblerfensters von MDEBUG: