Skip to content

Make stacktrace less functional #2751

Open

Description

#2502 avoids using std::string directly in the separately compiled implementation. This is required, because translation units compiled into import library cannot use std::string (and other types with ABI dependent on containers/iterators debug level).

As a result, function pointer types _Stacktrace_string_fill and _Stacktrace_string_fill_callback are used for type erasure. These function pointers complicate the implementation. Mostly it is an issue for understanding the implementation, although it causes some code bloat as well.

In the next ABI-breaking release, the implementation should move to the main library, and there should be no need to avoid std::string in it - we compile all the necessary flavors of the main library to support the variety of containers/iterators debug levels.

vNext note: Resolving this issue will require breaking binary compatibility. We won't be able to accept pull requests for this issue until the vNext branch is available. See #169 for more information.

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

Metadata

Assignees

No one assigned

    Labels

    enhancementSomething can be improvedvNextBreaks binary compatibility

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions