Skip to content

0.7.0

Compare
Choose a tag to compare
@daniel5151 daniel5151 released this 24 Nov 20:01
· 11 commits to master since this release

0.7 is a fairly minimal "cleanup" release, landing a collection of small breaking changes that collectively improve various ergonomic issues in gdbstub's API.

The breaking changes introduced in 0.7 are generally trivial to fix, and I wager that porting from 0.6 to 0.7 shouldn't take more than ~10 minutes, at most.

As always, check out the transition guide for a rundown of key breaking changes to watch out for.

Cheers!


Breaking API Changes

  • stub::GdbStubError is now an opaque struct with a handful of methods to extract user-defined context (as opposed to being an enum that directly exposed all error internals to the user).
    • This change will enable future versions of gdbstub to fearlessly improve error messages and infrastructure without making semver breaking changes. See #112 for more.
  • common::Signal is not longer an enum, and is instead a struct with a single pub u8 field + a collection of associated constants.
    • As a result, yet another instance of unsafe could be removed from the codebase!
  • Arch API:
    • Entirely removed single_step_behavior. See #132 for details and rationale
  • Target APIs:
    • SingleThreadBase/MultiThreadBase
      • read_addrs now returns a usize instead of a (), allowing implementations to report cases where only a subset of memory could be read. #115 (geigerzaehler)
    • HostIo
      • bitflags has been updated from 1.x to 2.x, affecting the type of HostIoOpenFlags and HostIoOpenMode #138 (qwandor)

Internal Improvements

  • Reformatted codebase with nightly rustfmt using imports_granularity = "Item"