Skip to content

RFC: Allow custom StackTraces #216

Description

@cyphar

At the moment, there is no way to provide a custom stack trace for an error -- the stack trace is captured at Wrapf (or other such wrapping) time. While this is totally acceptable for pure-Go code, it would be useful to be able to add a stacktrace from a non-Go library which generates its own stacktraces.

The usecase that drives this is https://github.com/openSUSE/libpathrs -- it's a Rust library for which I'm writing some Go bindings. The fundamental cause of the error is within Rust code, but the Rust code provides (through C FFI) a full backtrace at the point the error occurred. Being able to produce loss-free Go errors would be pretty useful IMHO.

This proposal basically boils down to having something as simple as:

func (*stack) WithCustomStacktrace(s StackTrace) { /* ... */ }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions