Jan Vrany <jan.vrany@labware.com> [Thu, 07 Dec 2023 12:33:31 +0000] rev 322
Emit and handle (custom) `-register-changed` notification
This commit adds new (custom) asynchronous notification about register value
being changed. Standard GDB does not notify MI clients about register value
being changed when debugging (for example, by CLI command `set $rax = 1` or
via Python's `Value.assign()`).
This caused libgdb's register value cache being out of sync. In the past,
this was partially worked around by manually emiting the notification on
`GDBRegisterWithValue` APIs, but this did not (and could not) handle the case
register was changed from GDB command line.
To solve this problem, this commit installs a custom Python event handler
that emits new GDB/MI notification - `-register-changed` - whenever a register
changes after debugee is stopped. This has been enabled by upstream GDB commit
4825fd "gdb/python: implement support for sending custom MI async notifications"
On libgdbs side, complete inferior state is invalidated. In theory, one could
carefully invalidate only the changed `GDBRegisterWithValue` but in certain cases
this could also change the backtrace (for example, if one updates stack pointer)
or position in code. So it seems safer to just invalidate everything.
Jan Vrany <jan.vrany@labware.com> [Thu, 07 Dec 2023 15:41:12 +0000] rev 321
Load libbdbs-specific Python support code on startup
This commit adds support for loading libgdbs-specific (GDB/MI)
support code into GDB. This is a preparation for adding custom
notifications and commands that are specific to libgdbs.
Jan Vrany <jan.vrany@labware.com> [Thu, 07 Dec 2023 15:40:01 +0000] rev 320
Compatibility: add portlib method returning directory with test programs
...as it cannot be easily determined in a dialect-agnostic
way.
Jan Vrany <jan.vrany@labware.com> [Thu, 07 Dec 2023 11:54:09 +0000] rev 319
Do not wait for MI response when using `GDBDebugger >> #pythonImport:`
...in order to speed up startup.
Jan Vrany <jan.vrany@labware.com> [Wed, 06 Dec 2023 11:42:08 +0000] rev 318
Handle leading `-` when mapping async notification to class name
GDB commit
825fd2d "gdb/python: implement support for sending custom MI async notifications"
introduced support for user-defined asynchronous notifications. Such notification
can (in fact, should!) start with hyphen (`-`) and may contain sequence of hyphens.
This commit fixes `GDBAsyncEvent class >> #eventClassForType:` to handle such cases.
Jan Vrany <jan.vrany@labware.com> [Fri, 08 Sep 2023 12:40:22 +0100] rev 317
Fix `GDBMIDebugger` after rename of `GDBStXUnixProcess` to `GDBUnixProcess`
...in commit d1422e1ee.
Jan Vrany <jan.vrany@labware.com> [Mon, 04 Sep 2023 15:35:45 +0100] rev 316
Rename `GDBRegisterValueChangedEvent` to `GDBRegisterChangedEvent`
...to make name consistent with `GDBMemoryChangedEvent`.
Jan Vrany <jan.vrany@labware.com> [Mon, 04 Sep 2023 14:06:33 +0100] rev 315
Add inspector tabs showing breakpoints, inferiors, ...
...threads, backtrace and registers, just like in Pharo port
(see commit b333314e)
Jan Vrany <jan.vrany@labware.com> [Mon, 04 Sep 2023 14:00:57 +0100] rev 314
Add MI parser test
This commit add test to parse real-world frament which failed
to Pharo properly at some point.
It is encoded here as bytearray to make sure all the characters
are preserved exactly as they were.
Jan Vrany <jan.vrany@labware.com> [Thu, 31 Aug 2023 13:21:07 +0100] rev 313
Pharo port: add initial set of GT inspector extensions