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-- |
103 | 1 |
# Visual / VM Debugger |
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 | 4 |
|
5 |
## Features |
|
6 |
||
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 | 20 |
|
21 |
## Prerequisites |
|
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 | 24 |
|
25 |
## Building from Source |
|
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 | 28 |
|
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 | 31 |
``` |
32 |
||
33 |
Or evaluate following in a workspace: |
|
34 |
||
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 | 40 |
``` |
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 | 45 |
## Pre-built binaries |
46 |
||
47 |
Download and unpack latest [Smalltalk/X jv-branch toy archive][5] |
|
48 |
and run run: |
|
49 |
||
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 | 52 |
``` |
53 |
||
54 |
Or evaluate following in a workspace: |
|
55 |
||
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 | 61 |
``` |
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 | 67 |
## Reporting issues |
68 |
||
69 |
Use [Smalltalk/X jv-branch issue tracker][6] to [report issues][7] (you may need |
|
70 |
to login using your Google account in order to submit an issue). Alternatively, |
|
71 |
send a message to [Smalltalk/X mailing list][8]. |
|
72 |
||
73 |
## Author |
|
74 |
||
75 |
Jan Vrany `<jan.vrany [at] fit.cvut.cz>` |
|
76 |
||
77 |
## License |
|
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 | 81 |
|
82 |
[1]: http://creativecommons.org/licenses/by-nc/4.0/ |
|
83 |
[2]: https://www.gnu.org/software/gdb/ |
|
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 | 86 |
[5]: https://swing.fit.cvut.cz/jenkins/job/stx_jv/lastSuccessfulBuild/ |
108 | 87 |
[6]: https://swing.fit.cvut.cz/projects/stx-jv/wiki/Documentation/BuildingStXWithRakefiles |
103 | 88 |
[7]: https://swing.fit.cvut.cz/projects/stx-jv/newticket |
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/ |