Skip to content

Commit

Permalink
added conditional breakpoints, updated docs
Browse files Browse the repository at this point in the history
  • Loading branch information
S0urceror committed Jul 18, 2020
1 parent ab8c313 commit 4964aa5
Show file tree
Hide file tree
Showing 6 changed files with 613 additions and 401 deletions.
68 changes: 51 additions & 17 deletions documentation/Usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ They are distinguished via the "remoteType":
- "zsim": Internal Z80 Simulator
- "zrcp": ZEsarUX (or ZesaruxExt) emulator
- "cspect": CSpect emulator
- "openmsx": OpenMSX emulator
<!--
- "serial": ZX Next connected via serial.
-->
Expand All @@ -285,20 +286,20 @@ Via a USB-to-Serial Interface the serial data is available e.g. at /dev/tty.usbs
The different Remotes have different capabilities in conjunction with DeZog.
The following table gives an overview.

| | Internal Z80 Simulator | ZEsarUX | ZesaruxExt | ZX Next | CSpect |
|-------------------------|--------------------|---------|------------|----------|----------|
| State | stable | stable | stable | started | stable |
| Breakpoints | yes | yes | yes/fast | yes | yes |
| Conditional Breakpoints | yes | yes | yes/fast | yes/slow | yes/slow |
| Watchpoints | yes | yes | yes/fast | no | no |
| Asserts | yes | no | yes | yes/slow | yes/slow |
| Logpoints | yes | no | yes | yes/slow | yes/slow |
| Extended callstack | no | yes | yes | no | no |
| Code coverage | yes | yes | yes | no | no |
| Reverse debugging | true | true | true | lite | lite |
| ZX Next capable | no | yes | yes | yes | yes |
| Save/restore the state | yes | yes | yes | no | no |
| Output of T-States | yes | yes | yes | no | no |
| | Internal Z80 Simulator | ZEsarUX | ZesaruxExt | ZX Next | CSpect | OpenMSX |
|-------------------------|--------------------|---------|------------|----------|----------|---------|
| State | stable | stable | stable | started | stable | started |
| Breakpoints | yes | yes | yes/fast | yes | yes | yes |
| Conditional Breakpoints | yes | yes | yes/fast | yes/slow | yes/slow | yes |
| Watchpoints | yes | yes | yes/fast | no | no | no |
| Asserts | yes | no | yes | yes/slow | yes/slow | no |
| Logpoints | yes | no | yes | yes/slow | yes/slow | no |
| Extended callstack | no | yes | yes | no | no | no |
| Code coverage | yes | yes | yes | no | no | no |
| Reverse debugging | true | true | true | lite | lite | no |
| ZX Next capable | no | yes | yes | yes | yes | N/A |
| Save/restore the state | yes | yes | yes | no | no | no |
| Output of T-States | yes | yes | yes | no | no | no |
| Comments | slower than ZEsarUx or CSpect | | Breakpoints are faster than in ZEsarUX | |

Notes:
Expand Down Expand Up @@ -601,8 +602,43 @@ Example launch.json configuration:
???
~~~

### OpenMSX

## Usage
Here DeZog connects via the socket directly to OpenMSX. It finds the PID to the running process in the TEMP directory as specified by OpenMSX.

~~~
┌───────────────┐ ┌─────────────────┐ ┌────────────────────┐
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ vscode │ │ DeZog │ │ OpenMSX │
│ │◀─────────────│ │◀─────────│ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ | |
└───────────────┘ └─────────────────┘ └────────────────────┘
~~~

Although MSX-es are not Spectrum devices they do have a Z80. As a result debugging is mostly the same as on a ZX device.

Use -e <any command> in the Debug Console from within VSCode to run any command you would normally run in the OpenMSX console.

Examples:
```
-e openmsx_info version
-e cpuregs
-e diska insert <filename>
-e cart insert <filename>
```
If you debug .COM applications it is best to mount a disk in OpenMSX with an autoexec.bat file that starts it automatically. This way after boot you hit any breakpoints you set and don't need to type any commands before you do a debug session.

If you debug .BIN application do the same with an autoexec.bas file.

.ROM applications boot automatically of course.

You can use the commandsAfterLaunch property in launch.json to automatically mount a disk or insert a ROM. Please specify it here as you would do it in the Debug Console.

### Usage

If you use any Remote other than the internal Simulator please make sure that it is started before you start the debug session with DeZog.

Expand All @@ -627,8 +663,6 @@ You can now try the following:
- set breakpoints, press continue to run to the breakpoints




### Reverse Debugging

A special feature of DeZog is the possibility to reverse debug your program.
Expand Down
Loading

0 comments on commit 4964aa5

Please sign in to comment.