Thu, 20 Jun 2019 10:36:20 +0100 Avoid update cycle when handling `=thread-selected` event
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.
Tue, 18 Jun 2019 11:14:38 +0100 Clean up settings application and remove obsolete settings
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.
Wed, 12 Jun 2019 20:04:33 +0100 Update simple console implementation to use updated -complete command
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.
Wed, 12 Jun 2019 15:16:33 +0100 Add `VDBTerminalView` used on with PTYs
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.
Tue, 11 Jun 2019 11:44:32 +0100 Fix `VDBInstructionListApplication` update w.r.t running threads
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.
Tue, 11 Jun 2019 11:40:12 +0100 plugins/bee: add support for setting a breakpoint
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
Mon, 10 Jun 2019 15:22:49 +0100 plugins/bee: add symbol filter
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.
Mon, 10 Jun 2019 14:59:26 +0100 plugins/bee: add menu item to disassemble given symbol
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)
Mon, 10 Jun 2019 14:36:46 +0100 Generalize `VDBInstructionListView`
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.
Sun, 09 Jun 2019 11:19:45 +0100 UX: for all lists, automagically show `Updating...` message
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.
Sat, 08 Jun 2019 16:36:18 +0100 UX: display error message when a function cannot be disassembled
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.
Sat, 08 Jun 2019 16:34:54 +0100 API: add basic API to show (and hide) message in place of list contents
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.
Fri, 07 Jun 2019 19:53:28 +0100 Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 07 Jun 2019 19:53:28 +0100] rev 160
Initial shot on Bee plugin
Mon, 20 May 2019 14:02:13 +0100 UI: set console width / height when a console view is resized
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.
Mon, 13 May 2019 11:36:08 +0100 UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
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.
Wed, 08 May 2019 15:32:58 +0100 UX: fix skip in user message when there's no reference to a source file
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.
Tue, 23 Apr 2019 13:58:59 +0100 UI: add a menu item to attach another debugger to cuurrent GDB
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)
Tue, 26 Mar 2019 11:26:57 +0000 Merge
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 26 Mar 2019 11:26:57 +0000] rev 155
Merge
Mon, 18 Feb 2019 10:55:12 +0000 Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
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.
Tue, 26 Mar 2019 11:25:48 +0000 UI: add support for multi-location breakpoints
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
Mon, 18 Feb 2019 09:44:04 +0000 UI: add status bar to debugger
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.
Wed, 23 Jan 2019 22:05:43 +0000 Performance: do not update contents of windows when not needed
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.
Wed, 13 Mar 2019 14:18:16 +0000 Fix annoying flashing in simple console on Windows
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.
Wed, 13 Mar 2019 14:07:49 +0000 Show log output in simple console
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.
Wed, 13 Mar 2019 13:54:14 +0000 Workaround: assume native target when issuing `run` or `attach` commands using simple console
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.
Wed, 30 Jan 2019 11:45:37 +0000 UX: automatically refresh memory contents when inferior stops
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.
Wed, 30 Jan 2019 11:36:40 +0000 Fix rendering of an instruction in instruction list
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").
Tue, 29 Jan 2019 09:58:21 +0000 Oops, fixed bug introduced by previous commit (44f5e1c314b3)
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.
Mon, 28 Jan 2019 23:41:53 +0000 Execute CLI execution commands in background mode
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.
Fri, 25 Jan 2019 13:33:51 +0000 A complete rewrite of simple console
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.
Wed, 23 Jan 2019 11:02:06 +0000 Added (some) documentation
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.
Mon, 21 Jan 2019 15:44:53 +0000 Skip test `#test_completion_01` when `-complete` MI command is not available.
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.
Mon, 21 Jan 2019 21:14:27 +0000 Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Jan 2019 21:14:27 +0000] rev 140
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Mon, 21 Jan 2019 14:43:03 +0000 Factored out common console code into (new) `VDBAbstractConsoleApplication`
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.
Mon, 21 Jan 2019 11:41:14 +0000 Partially backout changes from 15335a3523c4 (Fix: bug in simple console causing output being lost)
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.
Sun, 20 Jan 2019 00:06:22 +0000 UX: simple console: do not show prompt while inferior is running and console read only.
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.
Sat, 19 Jan 2019 23:28:30 +0000 UI: in simple console use prompt defined by GDB parameter 'prompt'
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.
Thu, 17 Jan 2019 12:55:47 +0000 Fix 'Refresh' button in memory view
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.
Thu, 17 Jan 2019 09:29:01 +0000 UI: Show breakpoint address in hex
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.
Thu, 17 Jan 2019 09:28:12 +0000 Fix display of "no source code available" message in source view
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
Tue, 01 Jan 2019 23:46:41 +0000 UX: add initial support for command completion in simple console
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`.
Fri, 14 Dec 2018 11:41:47 +0000 Improve `--gdb` command line option handling
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).
Fri, 14 Dec 2018 10:31:13 +0000 Fix: bug in simple console causing output being lost
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...
Thu, 13 Dec 2018 14:58:49 +0000 Fix: catch-up with `jv:libgdbs` after a rename of `#gdbExecutable`
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``
Thu, 13 Dec 2018 14:56:29 +0000 Fix: use `VDBUnixDebuggerConsoleApplication` only when GDB's process is a UNIX process
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.
Wed, 12 Dec 2018 16:35:20 +0000 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
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`.
Wed, 28 Nov 2018 14:08:58 +0000 UX: reflect font size in in `VDBMemoryApplication`
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 28 Nov 2018 14:08:58 +0000] rev 126
UX: reflect font size in in `VDBMemoryApplication`
Sun, 28 Oct 2018 14:34:08 +0000 Catch up with removal of `GDBOutputFormats` pool in `jv:libgdbs`
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`
Mon, 08 Oct 2018 08:24:14 +0100 Send `#updateAfterVisitiblityChanged` to an application when visibility of its window changes
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.
Sun, 07 Oct 2018 22:10:32 +0100 Use delayed updates in `VDBBreakpointListApplication`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 07 Oct 2018 22:10:32 +0100] rev 123
Use delayed updates in `VDBBreakpointListApplication`
Tue, 02 Oct 2018 12:32:08 +0100 UX: show user some usefull message when source code is not available
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.
Sun, 07 Oct 2018 09:14:26 +0100 Fix `VDBVariableObjectListApplication >> foregroundColorFor:`
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.
Sun, 07 Oct 2018 08:57:24 +0100 Fix `VDBInstructionAndSourcePresenter >> label`
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.
Fri, 05 Oct 2018 11:45:46 +0100 Fix (re)loading of preferences when calling `VDBStartup >> main:` from workspace
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.
Fri, 05 Oct 2018 09:43:53 +0100 UI: add Hex-Rays IDA Pro like debugger layout
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 :-)
Fri, 05 Oct 2018 09:11:56 +0100 UI: add option to change debugger layout and preference to set the default layout
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
Thu, 04 Oct 2018 10:51:17 +0100 UI: add GDB executable configuration to settings dialog
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.
Wed, 03 Oct 2018 15:52:44 +0100 Cleanup default window titles
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.
Wed, 03 Oct 2018 15:34:35 +0100 UI: split *View* menu into *View* and *Window*
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
Mon, 01 Oct 2018 20:56:03 +0100 UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 01 Oct 2018 20:56:03 +0100] rev 113
UI: Show disassembly along with source code
Mon, 01 Oct 2018 12:11:59 +0100 Add register view to frame details application (`VDBFrameApplication`)
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!
Fri, 28 Sep 2018 10:09:50 +0100 UI: add *View* -> *Disassembly* menu item to debugger menu
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
Thu, 27 Sep 2018 21:27:59 +0100 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 27 Sep 2018 21:27:59 +0100] rev 110
UI: add register view
Thu, 27 Sep 2018 21:00:01 +0100 UI: rename and fix debugger's *View* -> *Frame* to *View* -> *Variables*
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.
Thu, 27 Sep 2018 12:06:42 +0100 Fix link in `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 27 Sep 2018 12:06:42 +0100] rev 108
Fix link in `README.md`
Sun, 23 Sep 2018 07:03:34 +0100 Move `VDBStartup` from `jv:vdb/application` to `jv:vdb`
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.
Sat, 22 Sep 2018 01:01:34 +0100 Fix error when cloding standalone VDB
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.
Mon, 10 Sep 2018 16:49:07 +0100 Fix `VDBVariableObjectPresenter >> label`
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 10 Sep 2018 16:49:07 +0100] rev 105
Fix `VDBVariableObjectPresenter >> label`
Sat, 08 Sep 2018 16:03:04 +0100 UX: when inspecting a variable child, open it in the same inspector window
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
Sat, 08 Sep 2018 10:04:08 +0100 Added `README.md`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 08 Sep 2018 10:04:08 +0100] rev 103
Added `README.md`
Sat, 01 Sep 2018 22:59:44 +0100 Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 01 Sep 2018 22:59:44 +0100] rev 102
Fix in `VDBVariableObjectPresenter`
Sat, 01 Sep 2018 14:44:55 +0100 UX: improve navigation and single-stepping in disassembly view
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.
Sat, 01 Sep 2018 14:40:24 +0100 API: provide support for application-defined context menu items in list and tree applications
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`.
Sat, 01 Sep 2018 13:26:37 +0100 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:26:37 +0100] rev 99
UI: use same font text in help popups as it's used in text and list views
Sat, 01 Sep 2018 13:25:16 +0100 Fix `VDBInstructionBasicBlock class >> analyze:` to handle indirect jumps
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).
Sat, 01 Sep 2018 00:26:02 +0100 Workaround for `doExecReverse` when using RR
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 :-)
Thu, 30 Aug 2018 11:08:17 +0100 Fix `VGBInstructionBasicBLock >> splitAtAddress:`
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.
Mon, 20 Aug 2018 22:19:23 +0100 Add support for use-specific init file (~/.vdbinit.st)
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.
Mon, 20 Aug 2018 11:00:23 +0100 UX: Allow to set a font for text, list views and pinned menus
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 :-)
Thu, 16 Aug 2018 14:10:57 +0100 UI: Highlight target basic block in disassembly view
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
Tue, 07 Aug 2018 15:42:24 +0100 UI: highlight currently executed instruction in frame 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
Tue, 07 Aug 2018 12:17:46 +0100 UX: show original source line in 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.
Mon, 30 Jul 2018 17:26:19 +0100 UX: show 'invalid' variables as red
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 :-)
Mon, 30 Jul 2018 10:24:48 +0100 UI: added `Reverse` exec menu item
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 30 Jul 2018 10:24:48 +0100] rev 89
UI: added `Reverse` exec menu item
Mon, 30 Jul 2018 08:41:56 +0100 UI: show block cursor in (UNIX) console views
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
Mon, 30 Jul 2018 07:44:40 +0100 UX: always show selected (contextual) frame in stack view
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`.
Sun, 29 Jul 2018 22:03:48 +0100 UX: show veriable value also as tooltip
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).
Sun, 29 Jul 2018 22:01:45 +0100 UI: allow list presenters to define a custom tooltip (fly-by-help)
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)
Sun, 29 Jul 2018 18:55:01 +0100 UI: fixed bug when clofing a tool window closed the whole debugger
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
Fri, 27 Jul 2018 07:58:24 +0100 Initial support for Mozilla rr
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 27 Jul 2018 07:58:24 +0100] rev 83
Initial support for Mozilla rr
Fri, 06 Jul 2018 11:19:41 +0100 UX: allow user to specify number of column and rows in memory view
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
Thu, 05 Jul 2018 13:38:59 +0100 Use `GDBVariable` instances as top-level items in frame list application.
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.
Tue, 26 Jun 2018 13:19:02 +0100 UX: improvements in disasembly view (`VDBInstructionListApplication`)
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.
Tue, 26 Jun 2018 14:17:50 +0100 UI: add 'Copy Selection To Clipboard' and 'Copy Contents to Clipboard'
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.
Tue, 26 Jun 2018 13:15:30 +0100 API: generalize support for application-defined background and foreground colors for presenters
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.
Fri, 22 Jun 2018 20:10:16 +0100 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 22 Jun 2018 20:10:16 +0100] rev 77
Add initial support for disassembly view
Mon, 02 Jul 2018 08:45:58 +0200 Tagged Smalltalk/X 8.0.0
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 02 Jul 2018 08:45:58 +0200] rev 76
Tagged Smalltalk/X 8.0.0
Mon, 28 May 2018 23:19:53 +0100 UX: inform user that GDB teminated abnormally (i.e., crashed) stx-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.
Fri, 25 May 2018 11:14:20 +0100 UX: expand top-level variable in variable list if this is the only variable
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.
Tue, 10 Apr 2018 20:23:08 +0100 UX: added preferences to automatically enable frame filters and pretty printers
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
Mon, 09 Apr 2018 21:43:54 +0100 UI: "disable" frames in frame list while inferior is running
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.
Wed, 04 Apr 2018 23:16:30 +0100 Win32: ressurected console implementation from 0db4a162853f
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.
Tue, 27 Mar 2018 09:03:27 +0100 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 27 Mar 2018 09:03:27 +0100] rev 70
Win32: minor fix in debugger console application
Tue, 27 Mar 2018 09:02:52 +0100 Disable restart, terminate and suspend actions if target does not support async mode
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
Wed, 21 Mar 2018 23:06:02 +0000 Added support for inspecting expression result in source view
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.
Wed, 14 Mar 2018 10:22:11 +0000 Added commands for reverse debugging
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 14 Mar 2018 10:22:11 +0000] rev 67
Added commands for reverse debugging
Wed, 14 Mar 2018 10:07:45 +0000 UI: add support to "pin" menus, i.e., turn them into a floating toolboxes
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.
Tue, 13 Mar 2018 00:08:25 +0000 Fixed handling of log events in `VDBDebuggerApplication`
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.
Mon, 19 Feb 2018 16:20:12 +0000 UI: Added Smalltalk/X-specific menu items to variables
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!
Fri, 09 Feb 2018 10:56:02 +0000 Introduced menu extension points
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.
Tue, 06 Feb 2018 14:35:33 +0000 UI: avoid flickering when updating variable object list
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
Mon, 05 Feb 2018 21:46:29 +0000 UI: Show absolue path for top-level variable objects
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
Mon, 05 Feb 2018 14:18:03 +0000 Cleanup of (former) `VDBModelPresenter`
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.
Sat, 03 Feb 2018 21:18:50 +0000 Variable objects: splitted `VDBFrameApplication`
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.
Thu, 01 Feb 2018 23:28:51 +0000 Variable objects: highlight values that have changed since last "view"
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"
Sun, 28 Jan 2018 23:13:36 +0000 Variable objects: added support for composite types
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.
Fri, 26 Jan 2018 12:06:19 +0000 UI: added "memory view" to display memory dumps
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
Wed, 17 Jan 2018 07:03:58 +0000 UI: refactored updates in thread / stack view
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.
Wed, 17 Jan 2018 06:46:47 +0000 UI: support for presenter-defined context menus
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).
Mon, 15 Jan 2018 09:57:48 +0000 Win32: initial support for Windows.
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 :-)
(0) -120 tip