README.md
author Jan Vrany <jan.vrany@labware.com>
Fri, 29 Jul 2022 16:12:54 +0100
changeset 266 e21d777d076e
parent 264 23960fcb9dac
child 268 47653b528e7b
permissions -rw-r--r--
Fix `VDBInstructionListApplication` to analyze blocks for standalone instruction list ...that is, for instructions without any "disassemblable" (function, address range). This is used in some inspector goodies on Compiler's code buffer.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
# Visual / VM Debugger
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
142
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
     3
*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. 
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
## Features
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
  * source-and-assembly view with detailed instruction analysis (basic blocks, 
142
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
     8
    jump targets and so on),
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
     9
  * data structure inspector,
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    10
  * configurable memory view,
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    11
  * integrated *GDB* command line with completion (even on Windows!),
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    12
  * integrated support for reverse debugging using *GDB's* native reverse 
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    13
    debugging or [rr][11],
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    14
  * ability to run *GDB* remotely through SSH on a remote server or on a 
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    15
    development board
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    16
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    17
## Obligatory Screenshot
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    18
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    19
![Visual/VM Debugger](doc/vdb-001.png)
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
## Prerequisites
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
204
fbf9eff7df60 Fix `Step Into` in assembly view
Jan Vrany <jan.vrany@labware.com>
parents: 142
diff changeset
    23
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].
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
## Building from Source
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
142
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    27
*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:
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
```
107
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    30
./build/stx/projects/smalltalk/smalltalk --load jv:vdb --run VDBStartup
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
```
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
Or evaluate following in a workspace: 
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
```
107
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    36
Smalltalk loadPackage: 'jv:vdb'.
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    37
VDBStartup main.
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    38
"or"
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    39
VDBStartup main: #('--help')
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
```
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
142
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    42
For more details, see [documentation][10], sections [Building from Source](Building.md)
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    43
and [Invoking and Configuring](Invoking.md).
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    44
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
## Pre-built binaries
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
Download and unpack latest [Smalltalk/X jv-branch toy archive][5]
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
and run run:
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
```
107
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    51
stx --load jv:vdb --run VDBStartup
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
```
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
Or evaluate following in a workspace: 
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
```
107
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    57
Smalltalk loadPackage: 'jv:vdb'.
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    58
VDBStartup main.
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    59
"or"
d98c11f9a7f5 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    60
VDBStartup main: #('--help')
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
```
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
142
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    63
## Documentation
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    64
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    65
Some documentation can be found in [doc][10] directory, see [doc/README.md][10]
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    66
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
## Reporting issues
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
Use [Smalltalk/X jv-branch issue tracker][6] to [report issues][7] (you may need
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
to login using your Google account in order to submit an issue). Alternatively,
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
send a message to [Smalltalk/X mailing list][8]. 
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
## Author
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
Jan Vrany `<jan.vrany [at] fit.cvut.cz>`
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
## License
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 204
diff changeset
    79
This software is licensed under *MIT license*.
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 204
diff changeset
    80
You may find a full license text in `LICENSE.txt`.
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
[1]: http://creativecommons.org/licenses/by-nc/4.0/
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
[2]: https://www.gnu.org/software/gdb/
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
[3]: https://swing.fit.cvut.cz/projects/stx-jv
204
fbf9eff7df60 Fix `Step Into` in assembly view
Jan Vrany <jan.vrany@labware.com>
parents: 142
diff changeset
    85
[4]: https://github.com/janvrany/binutils-gdb
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
[5]: https://swing.fit.cvut.cz/jenkins/job/stx_jv/lastSuccessfulBuild/
108
277fadaec466 Fix link in `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 107
diff changeset
    87
[6]: https://swing.fit.cvut.cz/projects/stx-jv/wiki/Documentation/BuildingStXWithRakefiles
103
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
[7]: https://swing.fit.cvut.cz/projects/stx-jv/newticket
df0374b41f76 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
[8]: https://groups.google.com/forum/#!forum/stx-jv
204
fbf9eff7df60 Fix `Step Into` in assembly view
Jan Vrany <jan.vrany@labware.com>
parents: 142
diff changeset
    90
[9]: https://swing.fit.cvut.cz/hg/jv-libgdbs/file/tip/doc/GDB.md
142
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    91
[10]: doc/README.md
dae35d5b3d72 Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    92
[11]: https://rr-project.org/