Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 20 Jun 2019 10:36:20 +0100] rev 172
Avoid update cycle when handling `=thread-selected` event
When debugger receives `=thread-selected` event it updates the value
of `selectedFrameHolder` (and `selectedThreadHolder`). This in turn
may result in call to `updateAfterSelectedFrameHolderChanged` which
isues `-thread-select` command (this is necessary to sync GDB user
context when user clicks on frame in UI). However, `-thread=select` may
result in another `=thread-selected` event and hence we cycle.
To avoid this endless loop, temporarily suspend updates from holders
when updating frame and thread holder from `=thread-selected` handler.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 18 Jun 2019 11:14:38 +0100] rev 171
Clean up settings application and remove obsolete settings
Apart of GDB executable itself, users may (should) use `$HOME/.vdbinit.st`
file.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 12 Jun 2019 20:04:33 +0100] rev 170
Update simple console implementation to use updated -complete command
...merged into GDB in commit 26648588294d03.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 12 Jun 2019 15:16:33 +0100] rev 169
Add `VDBTerminalView` used on with PTYs
The reason is that stock `TerminalView` closes streams when the view
is closed (destoryed). This is *NOT* what we want - application provides
opened stream and application is responsible for closing then.
In this particular case, closing the PTY causes GDB to exit. This is not
what we want - for example when reopening the UI or switching layout, old
debugger console view is destoyed and ew one attached to the same PTY.
Since there's no way to configure this behavior in `TerminalView`, we introduce
new VDB-specific subclass with desired behavior.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 11 Jun 2019 11:44:32 +0100] rev 168
Fix `VDBInstructionListApplication` update w.r.t running threads
Instruction list invalidates itself in various places in order to
always show up-to-date data, in particular currently executed
instruction. To do so it updates thread's stack so frame objects
have up-to-date PC. However, this fails when thread is running, so
check for that before updating.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 11 Jun 2019 11:40:12 +0100] rev 167
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 10 Jun 2019 15:22:49 +0100] rev 166
plugins/bee: add symbol filter
to quickly search through (possibly long) list of symbols.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 10 Jun 2019 14:59:26 +0100] rev 165
plugins/bee: add menu item to disassemble given symbol
Also, symbol list is auto-updated each time inferior stops.
This may take time and has to be oprimized (later)
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 10 Jun 2019 14:36:46 +0100] rev 164
Generalize `VDBInstructionListView`
...so it can show any object that responds to `#disassemble`.
In addition, a frame(Holder) can be set to highlight current PC
like before.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 09 Jun 2019 11:19:45 +0100] rev 163
UX: for all lists, automagically show `Updating...` message
...if updates take more than 200ms. The number is arbitrary and
hard-coded - may need some tuning.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 08 Jun 2019 16:36:18 +0100] rev 162
UX: display error message when a function cannot be disassembled
...tather than empty list.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 08 Jun 2019 16:34:54 +0100] rev 161
API: add basic API to show (and hide) message in place of list contents
This can be used to display error or "Updating..." message or alike.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 07 Jun 2019 19:53:28 +0100] rev 160
Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 20 May 2019 14:02:13 +0100] rev 159
UI: set console width / height when a console view is resized
This should improve behavior when pasting long lines and/or on multi-line
outputs.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 13 May 2019 11:36:08 +0100] rev 158
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
...since in that case, GDB cannot make changes to the breakpoint amd fails.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 08 May 2019 15:32:58 +0100] rev 157
UX: fix skip in user message when there's no reference to a source file
i.e., when debug info is missing.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 23 Apr 2019 13:58:59 +0100] rev 156
UI: add a menu item to attach another debugger to cuurrent GDB
This is only useful to debug crashing GDB (yes, even debugger crashes
and has to be debugged)
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 26 Mar 2019 11:26:57 +0000] rev 155
Merge
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 18 Feb 2019 10:55:12 +0000] rev 154
Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
rather than baking our own `#enqueueDelayedUpdate:`. The former is
"standard" API defined in `ApplicationModel`. We still need to
specialize that behavior in (overridden) `#enqueueMessage:for:arguments:`
but API-wise, we use the standard API.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 26 Mar 2019 11:25:48 +0000] rev 153
UI: add support for multi-location breakpoints
...namely:
* better textual description of multi-location breakpoints
* make a breakpoint list actually a tree with individual locations
as child of the breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 18 Feb 2019 09:44:04 +0000] rev 152
UI: add status bar to debugger
...showing user the status (running / ready / busy) in order to
provide a feedback to the user. It also shows a number of MI commands
executed since last stop event. This is mainly useful for VDB hacking
as rough information for optimization.
Currently, the "ready" / "busy" indication does not work very well
since most of the code executes MI commands within the UI eventloop
and therefore status bas cannot update. This will be adressed later.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 23 Jan 2019 22:05:43 +0000] rev 151
Performance: do not update contents of windows when not needed
...such as when the tab with it is not visible. This ought to make debugger
feel more "snappy" for complex programs running on slow machines and / or
during remote debugging sessions.
Common code for this has been factored out to new abstract class
`VDBAbstractContentsApplication`. `VDBSbstractListApplication` and subclasses
have been adapted to use this feature.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 13 Mar 2019 14:18:16 +0000] rev 150
Fix annoying flashing in simple console on Windows
...caused by different key names inder X11 and Windows.
This fix adds few more to the list.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 13 Mar 2019 14:07:49 +0000] rev 149
Show log output in simple console
This needed because, for example, python errors and
stacktrace is reported on log stream, not on output stream.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 13 Mar 2019 13:54:14 +0000] rev 148
Workaround: assume native target when issuing `run` or `attach` commands using simple console
Background command execution is not supported by some
targets, most notably by Windows native target. However,
at the point we have to decided whether use background
execution or not, we don't know which target will
get connected and therefore we cannot check target features.
So, make a guess and assime we gonna use native target.
This is so bad, this *absolutely* has to be fixed somehow.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 30 Jan 2019 11:45:37 +0000] rev 147
UX: automatically refresh memory contents when inferior stops
...so memory contents is up-to-date.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 30 Jan 2019 11:36:40 +0000] rev 146
Fix rendering of an instruction in instruction list
The disassembly string comes from GDB which in some cases (e.g,
RISC-V) uses tab to separate mnemonic from operands. This tab
must be expanded before the string is handed over to the list view
to render otherwise it would show replacement glyph ("cheese").
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 29 Jan 2019 09:58:21 +0000] rev 145
Oops, fixed bug introduced by previous commit (44f5e1c314b3)
We *MUST NOT* check for async support because at the time we
issue (say) `r` command, the real target is not yet connected,
therefore check for async would return `false` even if in fact
async is supported.
So, just run all execution commands in background mode
unconditionally.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 28 Jan 2019 23:41:53 +0000] rev 144
Execute CLI execution commands in background mode
...if target supports async mode. This allows user to interrupt
the program execution, at the very least.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 25 Jan 2019 13:33:51 +0000] rev 143
A complete rewrite of simple console
..that is not using `TerminalView`. The original (previous) implementation
had various problems that were hard to fix, namely loosing some
stream output in some cases.
New (current) implementation uses custom console view (1VDBSimpleDebuggerConsoleView`)
based on `TextCollector` rather than `TerminalView`. The resulting code is
much much simpler, it does not use internal pipes nor REPL / pipe reader processes.
Whole REPL runs completely in UI process.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 23 Jan 2019 11:02:06 +0000] rev 142
Added (some) documentation
...albeit far from being complete, as always.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Jan 2019 15:44:53 +0000] rev 141
Skip test `#test_completion_01` when `-complete` MI command is not available.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Jan 2019 21:14:27 +0000] rev 140
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Jan 2019 14:43:03 +0000] rev 139
Factored out common console code into (new) `VDBAbstractConsoleApplication`
...to avoid code duplication between UNIX (PTY-based) and simple (emulated)
console applications.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Jan 2019 11:41:14 +0000] rev 138
Partially backout changes from 15335a3523c4 (Fix: bug in simple console causing output being lost)
The hack in `#nextPut:` is not needed, the proper fix for this is in
`TerminalView` - see commit d712d7f4fc2b/stx.libwidg2.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 20 Jan 2019 00:06:22 +0000] rev 137
UX: simple console: do not show prompt while inferior is running and console read only.
...to signal user that program is running a commands cannot be entered. Also
make console read only while processing a command.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 19 Jan 2019 23:28:30 +0000] rev 136
UI: in simple console use prompt defined by GDB parameter 'prompt'
...which may be set by `set prompt` command in startup scripts.
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 17 Jan 2019 12:55:47 +0000] rev 135
Fix 'Refresh' button in memory view
Handling method `#doRefresh` was missing, causing an error when
button was clicked. This commit fixes the ereor.
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 17 Jan 2019 09:29:01 +0000] rev 134
UI: Show breakpoint address in hex
...in breakpoint lists.
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 17 Jan 2019 09:28:12 +0000] rev 133
Fix display of "no source code available" message in source view
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 01 Jan 2019 23:46:41 +0000] rev 132
UX: add initial support for command completion in simple console
...that does not use PTY (which is not always available). This
support uses (new) MI command `-complete`.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 14 Dec 2018 11:41:47 +0000] rev 131
Improve `--gdb` command line option handling
...to allow user to specify (shell) command to launch GDB. In some
cases (like when gdb is launched on remote machine through SSH), we
cannot use UNIX PTYs to have native GDB CLI console. For cases like
this, introduce new `--no-pty` option to force VDB to use
emulated console even if current platform supports PTY (using PTY when
available is preferred).
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 14 Dec 2018 10:31:13 +0000] rev 130
Fix: bug in simple console causing output being lost
For some reason, output that did not fit to visible area was
removed. The problem was in `#doCursorDown:` being called
multiple times for multi-line output. For some reason it removes
lines from the begining. The problem seems to be that rangeEndLine
(number of pending lines) was not updated after a line was printed.
Though it seems right to fix this in `TerminalView`, for real usage
where output is taken from TTY it somehow works. To be on a safe side
(for now) fix it only in `VDBSimpleDebuggerConsoleView`. We will see...
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 13 Dec 2018 14:58:49 +0000] rev 129
Fix: catch-up with `jv:libgdbs` after a rename of `#gdbExecutable`
...to `#gdbCommand``
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 13 Dec 2018 14:56:29 +0000] rev 128
Fix: use `VDBUnixDebuggerConsoleApplication` only when GDB's process is a UNIX process
...having separate streams for CLI console (usually a PTY). This is
to handle cases when `GDBStXSimpleProcess` is used even if VDB runs
on UNIX systems.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 12 Dec 2018 16:35:20 +0000] rev 127
Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
as ot may be used on other scenarios than running on Windows, for example
when GDB is run on remote machine through SSH or when using generic
`GDBRemoteProcess`.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 28 Nov 2018 14:08:58 +0000] rev 126
UX: reflect font size in in `VDBMemoryApplication`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 28 Oct 2018 14:34:08 +0000] rev 125
Catch up with removal of `GDBOutputFormats` pool in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 08 Oct 2018 08:24:14 +0100] rev 124
Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
Such as when the application is in a tab which is not visible and
become visible or the other way round.
This can be used by applications to suppress (expensive) updates
when contents is not visible.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 07 Oct 2018 22:10:32 +0100] rev 123
Use delayed updates in `VDBBreakpointListApplication`
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 02 Oct 2018 12:32:08 +0100] rev 122
UX: show user some usefull message when source code is not available
...along with hints what might be wrong in order to help users
to debug / fix the problem.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 07 Oct 2018 09:14:26 +0100] rev 121
Fix `VDBVariableObjectListApplication >> foregroundColorFor:`
...w.r.t out-of-scope variables. In this case, `#valueString` returns
nil. Sigh.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 07 Oct 2018 08:57:24 +0100] rev 120
Fix `VDBInstructionAndSourcePresenter >> label`
Use `propertyAt: #file` rather than #file because
the latter tries to resolve the file and returns
`nil` if the file cannot be resolved.
In this case, we're not interested in contents of the file
but only a name. The behavior of `GDBInstructionAndSource >> #file`
(and `GDBFrame >> #file` is questionable.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 05 Oct 2018 11:45:46 +0100] rev 119
Fix (re)loading of preferences when calling `VDBStartup >> main:` from workspace
In this case, we MUST NOT load preferences from file, otherwise all unsaved
settings would be lost! On the other hand, when VDB is compiled as standalone
application or run from command line (`--load jv:vdb --run VDBStartup`) we
MUST load them.
Unfortunately, there's no good way how to tell whether the startup has
been called by means of `--run` - hence the `thisContext sender` hackery.
Bleh.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 05 Oct 2018 09:43:53 +0100] rev 118
UI: add Hex-Rays IDA Pro like debugger layout
A courtesy to Pocho :-)
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 05 Oct 2018 09:11:56 +0100] rev 117
UI: add option to change debugger layout and preference to set the default layout
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 04 Oct 2018 10:51:17 +0100] rev 116
UI: add GDB executable configuration to settings dialog
Also add *File* -> *Preferences* menu option to main debugger window.
and a new command line option `--gdb` to specify GDB on a command
line.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 03 Oct 2018 15:52:44 +0100] rev 115
Cleanup default window titles
...namely:
* rename class-side from `#windowTitle` to `#defaultWindowTitle` (because
really, it's just a default)
* make sure that all overriden `#defaultWindowTitle` methods use
resources to properly support i19n.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 03 Oct 2018 15:34:35 +0100] rev 114
UI: split *View* menu into *View* and *Window*
..and move all items opening new windows to *Window* menu
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 01 Oct 2018 20:56:03 +0100] rev 113
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 01 Oct 2018 12:11:59 +0100] rev 112
Add register view to frame details application (`VDBFrameApplication`)
Finally!
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 28 Sep 2018 10:09:50 +0100] rev 111
UI: add *View* -> *Disassembly* menu item to debugger menu
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 27 Sep 2018 21:27:59 +0100] rev 110
UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 27 Sep 2018 21:00:01 +0100] rev 109
UI: rename and fix debugger's *View* -> *Frame* to *View* -> *Variables*
This used to show variables of a current frame but has rotten over time.
This commit fixes this and renames it to *Variables* which is more
fitting name.
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 27 Sep 2018 12:06:42 +0100] rev 108
Fix link in `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 23 Sep 2018 07:03:34 +0100] rev 107
Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
This is required in order to simplify Visual / VM Debugger startup
and packaging when using Smalltalk/X jv-branch toy archive.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 22 Sep 2018 01:01:34 +0100] rev 106
Fix error when cloding standalone VDB
...caused by redraw request once screen is already closed.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 10 Sep 2018 16:49:07 +0100] rev 105
Fix `VDBVariableObjectPresenter >> label`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 08 Sep 2018 16:03:04 +0100] rev 104
UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 08 Sep 2018 10:04:08 +0100] rev 103
Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 22:59:44 +0100] rev 102
Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 14:44:55 +0100] rev 101
UX: improve navigation and single-stepping in disassembly view
..by adding actions to context menu. Allow for context menu to be
pinned.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 14:40:24 +0100] rev 100
API: provide support for application-defined context menu items in list and tree applications
List and tree applications man provide application specific (as opposite to item-specific)
menu items by overriding class-side `contextMenuApplSlice`.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 13:26:37 +0100] rev 99
UI: use same font text in help popups as it's used in text and list views
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 13:25:16 +0100] rev 98
Fix `VDBInstructionBasicBlock class >> analyze:` to handle indirect jumps
...such as `jmp %rsi`. This this case `#branchTarget` returns nil (sice
branch target is not statically known).
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 00:26:02 +0100] rev 97
Workaround for `doExecReverse` when using RR
It seems that RR (as of 2018-08-31) has a funny bug:
when a program is stopped due to a signal, reverse-contine
will stop at the same place (when signal is reveiver) and
second reverse-contine does the job.
To somehow hide this from user, issue the second reverse-continue
command automagically.
This is horible hack and maybe not a great idea, but it looks beter
when doing demos :-)
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 30 Aug 2018 11:08:17 +0100] rev 96
Fix `VGBInstructionBasicBLock >> splitAtAddress:`
...when there are no precedesors at all.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 20 Aug 2018 22:19:23 +0100] rev 95
Add support for use-specific init file (~/.vdbinit.st)
This file allows uses to customize VDB. The contents is smalltalk
code that is executed upon VDB startup. The current instance of
VDB can be accessed via `vdb` variable.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 20 Aug 2018 11:00:23 +0100] rev 94
UX: Allow to set a font for text, list views and pinned menus
...independently from `CodeView`'s default font and `MenuPanel`s default font.
This is mostly useful for demos :-)
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 16 Aug 2018 14:10:57 +0100] rev 93
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 07 Aug 2018 15:42:24 +0100] rev 92
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 07 Aug 2018 12:17:46 +0100] rev 91
UX: show original source line in disassembly view
...rather than file and line. Much mure useful. Also, show
a source context as a tooltip.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 30 Jul 2018 17:26:19 +0100] rev 90
UX: show 'invalid' variables as red
If the pretty-printed valud of a variable contains strings `invalid`
or `cannot`, variable is considered invalid and shown in red color
to make it immediately clear.
This is indeed a heristics - we shall see if this proves to be useful.
At least, a nice feature for demos :-)
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 30 Jul 2018 10:24:48 +0100] rev 89
UI: added `Reverse` exec menu item
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 30 Jul 2018 08:41:56 +0100] rev 88
UI: show block cursor in (UNIX) console views
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 30 Jul 2018 07:44:40 +0100] rev 87
UX: always show selected (contextual) frame in stack view
regardless whether it's selected via UI or by CLI commands ('up' / 'down'
or 'frame n'). This is implemented by handling `GDBThreadSelectedEvent`.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 29 Jul 2018 22:03:48 +0100] rev 86
UX: show veriable value also as tooltip
This is useful when value is (very) long and don't fit
into a list (so the list view shortens the text).
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 29 Jul 2018 22:01:45 +0100] rev 85
UI: allow list presenters to define a custom tooltip (fly-by-help)
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 29 Jul 2018 18:55:01 +0100] rev 84
UI: fixed bug when clofing a tool window closed the whole debugger
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 27 Jul 2018 07:58:24 +0100] rev 83
Initial support for Mozilla rr
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 06 Jul 2018 11:19:41 +0100] rev 82
UX: allow user to specify number of column and rows in memory view
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 05 Jul 2018 13:38:59 +0100] rev 81
Use `GDBVariable` instances as top-level items in frame list application.
This way a synthetic variables (provided by frame decorators) are at
least displayed.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 26 Jun 2018 13:19:02 +0100] rev 80
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Namely:
* when a branch instruction is selected, highlight target address,
i.e, an address of next instruction if branch is taken.
* highlight all instruction in basic block of currently selected
instruction.
This is not as cool as in Hexray IDA Pro but better than nothing. We'll
get there, eventually.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 26 Jun 2018 14:17:50 +0100] rev 79
UI: add 'Copy Selection To Clipboard' and 'Copy Contents to Clipboard'
commands to list application's context menu. This is often useful to
copy-paste stack traces, memory dumps or diassembled code to emails
and or chats when discussing problem with colleagues.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 26 Jun 2018 13:15:30 +0100] rev 78
API: generalize support for application-defined background and foreground colors for presenters
...in any list. A list application that wants to display custom colors
for (some) list items should override `#foregroundColorFor:` and
`#backgroundColorFor:` as desired. No more need to override `#displayOn:...`
in presenter class.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 22 Jun 2018 20:10:16 +0100] rev 77
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 02 Jul 2018 08:45:58 +0200] rev 76
Tagged Smalltalk/X 8.0.0
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 28 May 2018 23:19:53 +0100] rev 75
UX: inform user that GDB teminated abnormally (i.e., crashed)
and allow user to inspect MI trece.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 25 May 2018 11:14:20 +0100] rev 74
UX: expand top-level variable in variable list if this is the only variable
...which is the common case when opening an inspector on an object.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 10 Apr 2018 20:23:08 +0100] rev 73
UX: added preferences to automatically enable frame filters and pretty printers
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 09 Apr 2018 21:43:54 +0100] rev 72
UI: "disable" frames in frame list while inferior is running
...as the list is not up to date and frame state cannot be queried.
"Disabling" means to draw them grayed, unselect any possibly selected
frame and make them non-selectable.
Once inferior stops, "enable" them again.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 04 Apr 2018 23:16:30 +0100] rev 71
Win32: ressurected console implementation from 0db4a162853f
...to provide more console-like experience. I personally found
this interface much nicer than the one with text view aind
input field (line in WinDBG). Perhaps it's only because I'm
used to it. We shall see.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 27 Mar 2018 09:03:27 +0100] rev 70
Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 27 Mar 2018 09:02:52 +0100] rev 69
Disable restart, terminate and suspend actions if target does not support async mode
...such as Windows
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 21 Mar 2018 23:06:02 +0000] rev 68
Added support for inspecting expression result in source view
...by selecting it and pression "Alt-I", just like in Smalltalk
debugger.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 14 Mar 2018 10:22:11 +0000] rev 67
Added commands for reverse debugging
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 14 Mar 2018 10:07:45 +0000] rev 66
UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
This spares us the need of explicit toolbar in the UI and gives the
user the freedom of turning every menu into always-visible toolbar
is it suits her (actual) need. This idea is taken from good old
NeXTstep UI.
For now, this is only supported for "Exec" menu, but the support is
generic so it would work any menu.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 13 Mar 2018 00:08:25 +0000] rev 65
Fixed handling of log events in `VDBDebuggerApplication`
Only raise & flash log window once all log events are received
to avoid (timely) flashing when log is large.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 19 Feb 2018 16:20:12 +0000] rev 64
UI: Added Smalltalk/X-specific menu items to variables
...using exensions mechanism introduced in previous commit. These
should go to some plugin and be enabled conditionally, but for now,
it will do. We yet have to figure out how to do plugins, if at all!
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 09 Feb 2018 10:56:02 +0000] rev 63
Introduced menu extension points
...to allow adding a new menu items to menu without need to edit
menu spec. This mechanism will eventually evolve to plugin mechanism,
if ever needed.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 06 Feb 2018 14:35:33 +0000] rev 62
UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 05 Feb 2018 21:46:29 +0000] rev 61
UI: Show absolue path for top-level variable objects
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 05 Feb 2018 14:18:03 +0000] rev 60
Cleanup of (former) `VDBModelPresenter`
* renamed `VDBModelPresenter` to `VDBAbstractPresenter` to follow
naming conventions
* improved support for presenter-defined menu items by using
per-menu-item receiver feature recently added to `stx:libview2` /
`stx:libwidh2`.
* As a demonstration, added "Enable" / "Disable" menu items to
breakpoint menu.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 03 Feb 2018 21:18:50 +0000] rev 59
Variable objects: splitted `VDBFrameApplication`
into more generic `VDBVariableObjectListApplication`
and `GDBFrameApplication`, the latter using the former.
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 01 Feb 2018 23:28:51 +0000] rev 58
Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 28 Jan 2018 23:13:36 +0000] rev 57
Variable objects: added support for composite types
...such as arrays, structs and unions:
* renamed `VDBVariablePresenter` to more generic `GDBVsriableOjbectPresenter`
* added support for hierarchy of `GDBVsriableOjbectPresenter` to show
members of composite types in frame application.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 26 Jan 2018 12:06:19 +0000] rev 56
UI: added "memory view" to display memory dumps
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 17 Jan 2018 07:03:58 +0000] rev 55
UI: refactored updates in thread / stack view
* Do not reload tree on thread exit event. This slows down
things a lot on Windows when debugging Smalltalk/X as
threads are created and terminated every now and again.
Only do that on stopped event.
* Do not reload three on running event - thre tree would
be not up to date anyways, no need to bother.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 17 Jan 2018 06:46:47 +0000] rev 54
UI: support for presenter-defined context menus
Each `VDBModelPresenter` can define it's own, model-specific
items by overriding class #contextMenu. These items are then
shown in context menu of "list" applications (subclasses of
`VDBAbstractListApplication`.
This is useful especially for `VDBStackApplication` which sjows
different models (inferiors, threads and frames).
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 15 Jan 2018 09:57:48 +0000] rev 53
Win32: initial support for Windows.
This commit brings an initial support for Windows.
* Introduces `VDBWindowsDebuggerConsoleApplication` since
there's no PTY support. Indeed, the GDB's command completion
support it lost. The UI is bit awkward - but hey, it looks like
WinDBG so Windows users shouldn't be too disappointed :-)