author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 21 Aug 2019 22:53:15 +0100 | |
changeset 182 | 4f3f744b58c6 |
parent 142 | dae35d5b3d72 |
child 204 | fbf9eff7df60 |
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 |
||
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
7 |
* integrated support for reverse-debugging, |
103 | 8 |
* 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
|
9 |
jump targets and so on), |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
10 |
* data structure inspector, |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
11 |
* configurable memory view, |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
12 |
* integrated *GDB* command line with completion (even on Windows!), |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
13 |
* 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
|
14 |
debugging or [rr][11], |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
15 |
* 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
|
16 |
development board |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
17 |
|
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
18 |
## Obligatory Screenshot |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
19 |
|
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
20 |
![Visual/VM Debugger](doc/vdb-001.png) |
103 | 21 |
|
22 |
## Prerequisites |
|
23 |
||
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
24 |
It is recommended to use GDB built from [https://bitbucket.org/janvrany/binutils-gdb][4] as it contains changes required by *VDB*. For more information about building patched GDB see [https://bitbucket.org/janvrany/jv-libgdbs/src/tip/doc/GDB.md][9]. |
103 | 25 |
|
26 |
## Building from Source |
|
27 |
||
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
28 |
*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 | 29 |
|
30 |
``` |
|
107
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
31 |
./build/stx/projects/smalltalk/smalltalk --load jv:vdb --run VDBStartup |
103 | 32 |
``` |
33 |
||
34 |
Or evaluate following in a workspace: |
|
35 |
||
36 |
``` |
|
107
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
37 |
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
|
38 |
VDBStartup main. |
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
39 |
"or" |
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
40 |
VDBStartup main: #('--help') |
103 | 41 |
``` |
42 |
||
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
43 |
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
|
44 |
and [Invoking and Configuring](Invoking.md). |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
45 |
|
103 | 46 |
## Pre-built binaries |
47 |
||
48 |
Download and unpack latest [Smalltalk/X jv-branch toy archive][5] |
|
49 |
and run run: |
|
50 |
||
51 |
``` |
|
107
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
52 |
stx --load jv:vdb --run VDBStartup |
103 | 53 |
``` |
54 |
||
55 |
Or evaluate following in a workspace: |
|
56 |
||
57 |
``` |
|
107
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
58 |
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
|
59 |
VDBStartup main. |
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
60 |
"or" |
d98c11f9a7f5
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
61 |
VDBStartup main: #('--help') |
103 | 62 |
``` |
63 |
||
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
64 |
## Documentation |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
65 |
|
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
66 |
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
|
67 |
|
103 | 68 |
## Reporting issues |
69 |
||
70 |
Use [Smalltalk/X jv-branch issue tracker][6] to [report issues][7] (you may need |
|
71 |
to login using your Google account in order to submit an issue). Alternatively, |
|
72 |
send a message to [Smalltalk/X mailing list][8]. |
|
73 |
||
74 |
## Author |
|
75 |
||
76 |
Jan Vrany `<jan.vrany [at] fit.cvut.cz>` |
|
77 |
||
78 |
## License |
|
79 |
||
80 |
![CC-BY-NC](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) |
|
81 |
||
82 |
This software is licensed under [Creative Commons Attribution-NonCommercial 4.0 International License][1]. You may find a full license text in `LICENSE.txt`. |
|
83 |
||
84 |
In short, you are free to: |
|
85 |
||
86 |
* **Share** — copy and redistribute the material in any medium or format, |
|
87 |
* **Adapt** — remix, transform, and build upon the material, |
|
88 |
||
89 |
under the following terms: |
|
90 |
||
91 |
* **Attribution** — You must give appropriate credit, provide a link to the license, and indicate if changes were made, |
|
92 |
* **NonCommercial** — You may not use the software for commercial purposes. |
|
93 |
||
94 |
For permissions beyond the scope of this license please contact author at |
|
95 |
`<jan.vrany [at] fit.cvut.cz>` |
|
96 |
||
97 |
[1]: http://creativecommons.org/licenses/by-nc/4.0/ |
|
98 |
[2]: https://www.gnu.org/software/gdb/ |
|
99 |
[3]: https://swing.fit.cvut.cz/projects/stx-jv |
|
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
100 |
[4]: https://bitbucket.org/janvrany/binutils-gdb |
103 | 101 |
[5]: https://swing.fit.cvut.cz/jenkins/job/stx_jv/lastSuccessfulBuild/ |
108 | 102 |
[6]: https://swing.fit.cvut.cz/projects/stx-jv/wiki/Documentation/BuildingStXWithRakefiles |
103 | 103 |
[7]: https://swing.fit.cvut.cz/projects/stx-jv/newticket |
104 |
[8]: https://groups.google.com/forum/#!forum/stx-jv |
|
142
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
105 |
[9]: https://bitbucket.org/janvrany/jv-libgdbs/src/tip/doc/GDB.md |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
106 |
[10]: doc/README.md |
dae35d5b3d72
Added (some) documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
107 |
[11]: https://rr-project.org/ |