Wed, 23 Jan 2019 21:38:06 +0000 Add `GDBDebugger >> #waitForAllEventsProcessed` and `#waitForAllCommandsProcessed`
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 23 Jan 2019 21:38:06 +0000] rev 170
Add `GDBDebugger >> #waitForAllEventsProcessed` and `#waitForAllCommandsProcessed` These methods are meant mainly for synchronization in tests, NOT for normal user code. Uses should avoid calling these.
Sat, 19 Jan 2019 23:25:55 +0000 API: add `GDBDebugger >> getParameter:` and `setParameter:to:`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 19 Jan 2019 23:25:55 +0000] rev 169
API: add `GDBDebugger >> getParameter:` and `setParameter:to:` ...to get / set GDB internal parameters such as prompt. The only complication here is that when a parameter is set by MI `-gdb-set` command, the `=cmd-param-changed' notification is not sent. This may or may not be a GDB bug. To make this transparent to `libgdbs` clients, intercept all `-gdb-set` commands and when sucessful, emit the event manually. This way, client may rely on value change notification (`GDBCmdParamChangedEvent`) to detect changes.
Wed, 16 Jan 2019 23:42:24 +0000 Fix synchronization issue in `GDBThreadGroup >> onThreadSelectedEvent:`
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 16 Jan 2019 23:42:24 +0000] rev 168
Fix synchronization issue in `GDBThreadGroup >> onThreadSelectedEvent:` ...which may be invoked when thread is actually still / already running. This check is bit ugly and strictly speaking not correct (meaning race-free). For now, it would do. We need to think on how to deal with that better on a general level.
Wed, 16 Jan 2019 23:38:20 +0000 Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 16 Jan 2019 23:38:20 +0000] rev 167
Use inferior PTY only if supported ...i.e., when running GDB locally on UNIX-like systems. Note, that the fact that `libgdbs` is running on UNIX-like system does not necessarily mean PTYs can be used - GDB still can run on remote machine via SSH.
Tue, 01 Jan 2019 23:44:26 +0000 Add class for new MI command `-complete`
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 01 Jan 2019 23:44:26 +0000] rev 166
Add class for new MI command `-complete`
Sat, 29 Dec 2018 23:32:34 +0000 Add new API `GDBDebugger >> #hasCommand:` to test support for particular MI command
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 29 Dec 2018 23:32:34 +0000] rev 165
Add new API `GDBDebugger >> #hasCommand:` to test support for particular MI command Internally this uses GDB's `-info-gdb-mi-command`. Results are cached to avoid uneccessary round-trips upon repeated calls.
Thu, 13 Dec 2018 14:53:48 +0000 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 13 Dec 2018 14:53:48 +0000] rev 164
Add support for arbitrary (shell) command to launch GDB. Until now it was only possible to specify GDB executable. In some cases however it is useful to be able to specify whole command including parameters - passing --data-directory or tunneling GDB through SSH, for example. To support this, a new setting, #gdbCommand: has been introduced making old gdbExecutable: obsolete. The specified command is NOT passed to shell, however. Instead, it's parsed the same way shell (or `cmd.exe` on Windows) would do it and then passed to `exec()` (`CreateProcessEx` on Windows). This is to avoid shell inkering with input/output stream - we need to handle them ourselves.
Wed, 12 Dec 2018 16:32:44 +0000 Renamed `GDBStXWindowsProcess` to `GDBStXSimpleProcess`
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 12 Dec 2018 16:32:44 +0000] rev 163
Renamed `GDBStXWindowsProcess` to `GDBStXSimpleProcess` ...as it may be used in more scenarios than on Windows. For example, it can be used to spawn gdb remotely using SSH (handy in cases there's no gdbserver implementation for remote machine)
Wed, 28 Nov 2018 14:07:54 +0000 Add methods for accessing individual output formats
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 28 Nov 2018 14:07:54 +0000] rev 162
Add methods for accessing individual output formats
Mon, 26 Nov 2018 20:26:16 +0000 Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 26 Nov 2018 20:26:16 +0000] rev 161
Added some documentation ...on how to compile a GDB suitable for libgdbs / VDB.
Thu, 01 Nov 2018 13:36:58 +0000 Fix `GDBVariableObject >> updateChanged` to be an noop when thread is running
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 01 Nov 2018 13:36:58 +0000] rev 160
Fix `GDBVariableObject >> updateChanged` to be an noop when thread is running ...since we cnnot query thread-related state while thread is running...
Tue, 30 Oct 2018 20:04:25 +0000 Portability: use `#digitValue` instead of `#digitValueRadix`
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 30 Oct 2018 20:04:25 +0000] rev 159
Portability: use `#digitValue` instead of `#digitValueRadix`
Tue, 30 Oct 2018 20:01:23 +0000 Portability: do not use `CacheDictionary`
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 30 Oct 2018 20:01:23 +0000] rev 158
Portability: do not use `CacheDictionary`
Tue, 30 Oct 2018 20:00:46 +0000 Portability: guard loading of UDIS86
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 30 Oct 2018 20:00:46 +0000] rev 157
Portability: guard loading of UDIS86 ...by `Smalltalk isSmalltalkX` since this is a Smalltalk/X specific code that won't work anywhere else.
Tue, 30 Oct 2018 14:36:08 +0000 Portability: transform `[...] doWhile: [...]` to `[...] whileTrue`
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 30 Oct 2018 14:36:08 +0000] rev 156
Portability: transform `[...] doWhile: [...]` to `[...] whileTrue` ANSI smalltalk defines only `#whileTrue`, `#doWhile:` is stxism (yet arguably useful and more readable).
Mon, 29 Oct 2018 13:02:14 +0000 Portability: do not use Squeak computed arrays
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 29 Oct 2018 13:02:14 +0000] rev 155
Portability: do not use Squeak computed arrays ...since Bee and others do not like them.
Sun, 28 Oct 2018 14:30:51 +0000 Portability: remove `GDBOutputFormats` pool
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 28 Oct 2018 14:30:51 +0000] rev 154
Portability: remove `GDBOutputFormats` pool since Bee does not realy support pools with non-literal values. Sigh.
Fri, 26 Oct 2018 09:59:52 +0100 Partability: use ANSI `#signal:` to raise an exception
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 26 Oct 2018 09:59:52 +0100] rev 153
Partability: use ANSI `#signal:` to raise an exception ..rather than St/Xism `#raiseErrorString:`.
Sat, 20 Oct 2018 07:48:11 +0100 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 20 Oct 2018 07:48:11 +0100] rev 152
Refactor `GDBProcess` hierarchy to improve portability Spawning and managing an OS process is tightly bound to the underlaying platform (both, smalltalk-wise and OS-wise). To improve portability and clarity of the code, rename `GDBUnixProcess` and `GDBWindowsProcess` to `GDBStXUnixProcess` and `GDBStxWindowsProcess`. This commit also includes a new abstract superclass (a `GDBLocalProcess`) for all specialisation spawning and managing a GDB process running on the same host as `jv:libgdbs` code.
Thu, 11 Oct 2018 09:55:43 +0200 Portability: get rid of private classes and make them public
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 11 Oct 2018 09:55:43 +0200] rev 151
Portability: get rid of private classes and make them public Namely: * `GDBMITrace::Command` (became `GDBMITraceCommandRecord`) * `GDBMITrace::Response` (became `GDBMITraceResponseRecord`)
Sun, 07 Oct 2018 08:31:38 +0100 Minor tweaks and workarounds in `GDBFrame`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 07 Oct 2018 08:31:38 +0100] rev 150
Minor tweaks and workarounds in `GDBFrame`
Wed, 03 Oct 2018 22:23:19 +0100 Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 03 Oct 2018 22:23:19 +0100] rev 149
Refactor configuration and autodetection of gdb executable Namely: * add new preference (`1UserPreferences current gdbExecutable:`) and actually implement `gdbExecutable:` in `UserPreferences` to make the code clearer, * refactor `GDBProcess class >> #gdbExecutable` to look at preferences and if not configured, try to autodecet path to GDB (with some magic for Windows)
Wed, 03 Oct 2018 13:00:25 +0100 Forbid blocking calls to `#send:andWait:` and: `send:andWaitFor:withTimeoutMs` from within an event dispatcher
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 03 Oct 2018 13:00:25 +0100] rev 148
Forbid blocking calls to `#send:andWait:` and: `send:andWaitFor:withTimeoutMs` from within an event dispatcher ...since it may lock. Better to fail early than let the use to debug a deadlock.
Tue, 02 Oct 2018 14:09:00 +0100 Minor cleanup and refactoring in event dispatch loop
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 02 Oct 2018 14:09:00 +0100] rev 147
Minor cleanup and refactoring in event dispatch loop ...as preparation to factoring out event dispatching code into a separate object.
Tue, 02 Oct 2018 10:56:33 +0100 API: add `GDBFrame >> hasSymbol` and `GDBFrame >> hasSource`
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 02 Oct 2018 10:56:33 +0100] rev 146
API: add `GDBFrame >> hasSymbol` and `GDBFrame >> hasSource`
Fri, 28 Sep 2018 09:56:36 +0100 Fix `GDBEventSubscription` w.r.t. uninitialized / partially initialized applications
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 28 Sep 2018 09:56:36 +0100] rev 145
Fix `GDBEventSubscription` w.r.t. uninitialized / partially initialized applications If the event observer (receiver of events) is an application (or view), the event is not processed within event dispatche loop but the pused back onot application (or view) sevent queue. However, we must be carefull since application windows may not yet be opened or fully initialized so we have to check for existence of sensor.
Wed, 26 Sep 2018 11:16:56 +0100 Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 26 Sep 2018 11:16:56 +0100] rev 144
Add model for machine registers To access machine registers and their values, a new API method `GDBFrame >> registersWithValues` is intruced in this commit.
Wed, 26 Sep 2018 13:25:40 +0100 Fixed synchronization bug in `GDBTransientDataHolder`
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 26 Sep 2018 13:25:40 +0100] rev 143
Fixed synchronization bug in `GDBTransientDataHolder` ...to prevent factory block being run twice if not necessary. After a quick, non-synchronized testc for sequence numbers, we have to test again in synchronized block!
Sat, 22 Sep 2018 00:48:20 +0100 Fix initialization of `GDBArch_x86`
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 22 Sep 2018 00:48:20 +0100] rev 142
Fix initialization of `GDBArch_x86` ...to handle case when package `jv:dragonfly/udis86sx` is not available. This used to raise an error which caused VDB startup failure.
Mon, 10 Sep 2018 16:48:13 +0100 Add `GDBVariable >> parent`
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 10 Sep 2018 16:48:13 +0100] rev 141
Add `GDBVariable >> parent`
(0) -100 -50 -30 +30 +50 +100 tip