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.
(0) -100 -50 -30 +30 +50 tip