README.md
author Jan Vrany <jan.vrany@labware.com>
Tue, 26 Jul 2022 15:01:33 +0100
changeset 265 f2470f0dd9cd
parent 264 23960fcb9dac
child 268 47653b528e7b
permissions -rw-r--r--
Do not show address for (pseudo) instructions with no code While such instructions do not appear in GDB-produced disassembly, they may appear in some manually-generated instruction lists. One example of such (pseudo) instruction is label.

# Visual / VM Debugger

*Visual / VM Debugger* (*VDB* for short) is a simple standalone graphical front-end for [GDB][2]aimed to debug, not only, virtual machines. It provides easy-to-use, easy-to-extend user interface while keeping full power of GDB command line and scripting facilities. 

## Features

  * source-and-assembly view with detailed instruction analysis (basic blocks, 
    jump targets and so on),
  * data structure inspector,
  * configurable memory view,
  * integrated *GDB* command line with completion (even on Windows!),
  * integrated support for reverse debugging using *GDB's* native reverse 
    debugging or [rr][11],
  * ability to run *GDB* remotely through SSH on a remote server or on a 
    development board

## Obligatory Screenshot

![Visual/VM Debugger](doc/vdb-001.png)

## Prerequisites

It is recommended to use GDB built from [https://github.com/janvrany/binutils-gdb][4] as it contains changes required by *VDB*. For more information about building patched GDB see [https://swing.fit.cvut.cz/hg/jv-libgdbs/file/tip/doc/GDB.md][9].

## Building from Source

*Visual / VM Debugger* is a part of [Smalltalk/X jv-branch][3] since version 8.0.0. To build VDB, just follow instructions how to [build Smalltalk/X jv-branch][6] and then run either:

```
./build/stx/projects/smalltalk/smalltalk --load jv:vdb --run VDBStartup
```

Or evaluate following in a workspace: 

```
Smalltalk loadPackage: 'jv:vdb'.
VDBStartup main.
"or"
VDBStartup main: #('--help')
```

For more details, see [documentation][10], sections [Building from Source](Building.md)
and [Invoking and Configuring](Invoking.md).

## Pre-built binaries

Download and unpack latest [Smalltalk/X jv-branch toy archive][5]
and run run:

```
stx --load jv:vdb --run VDBStartup
```

Or evaluate following in a workspace: 

```
Smalltalk loadPackage: 'jv:vdb'.
VDBStartup main.
"or"
VDBStartup main: #('--help')
```

## Documentation

Some documentation can be found in [doc][10] directory, see [doc/README.md][10]

## Reporting issues

Use [Smalltalk/X jv-branch issue tracker][6] to [report issues][7] (you may need
to login using your Google account in order to submit an issue). Alternatively,
send a message to [Smalltalk/X mailing list][8]. 

## Author

Jan Vrany `<jan.vrany [at] fit.cvut.cz>`

## License

This software is licensed under *MIT license*.
You may find a full license text in `LICENSE.txt`.

[1]: http://creativecommons.org/licenses/by-nc/4.0/
[2]: https://www.gnu.org/software/gdb/
[3]: https://swing.fit.cvut.cz/projects/stx-jv
[4]: https://github.com/janvrany/binutils-gdb
[5]: https://swing.fit.cvut.cz/jenkins/job/stx_jv/lastSuccessfulBuild/
[6]: https://swing.fit.cvut.cz/projects/stx-jv/wiki/Documentation/BuildingStXWithRakefiles
[7]: https://swing.fit.cvut.cz/projects/stx-jv/newticket
[8]: https://groups.google.com/forum/#!forum/stx-jv
[9]: https://swing.fit.cvut.cz/hg/jv-libgdbs/file/tip/doc/GDB.md
[10]: doc/README.md
[11]: https://rr-project.org/