Skip to content

No way to expose full C++ backtrace to Python #405

Description

@lohedges

Currently the full C++ backtrace is not exposed to the Python wrappers so cannot be parsed, e.g. by BioSimSpace. This is used in various places to provide additional contextual information to the user. Currently the output implies that the functionality can be exposed by calling sire.error.enable_backtrace_exceptions(), but this function doesn't appear to be exposed (yet).

For example:

{'why': 'There are no lead parsers!',
 'backtrace': 'Backtrace disabled. Call sire.error.enable_backtrace_exceptions() to re-enable.',
 'pid': '',
 'type': 'SireError::program_bug',
 'where': 'FILE: /home/lester/Code/Sire/corelib/src/libs/SireIO/moleculeparser.cpp, LINE: 1838, FUNCTION: void SireIO::MoleculeParser::sortParsers(QList<SireBase::PropPtr<SireIO::MoleculeParser> >&, QList<SireBase::PropPtr<SireIO::MoleculeParser> >&) const',
 'from': 'FILE: /home/lester/Code/Sire/corelib/src/libs/SireIO/moleculeparser.cpp, LINE: 1838, FUNCTION: void SireIO::MoleculeParser::sortParsers(QList<SireBase::PropPtr<SireIO::MoleculeParser> >&, QList<SireBase::PropPtr<SireIO::MoleculeParser> >&) const'}

In this case, we only get the last error message. I would like to be able to parse the full trace to see if this was due to the presence of CMAP records, which are currently unsupported, e.g. in relation to this issue.

(The only function that currently appears to be exposed through sire.error is get_last_error_details.)

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

    2023.0Work related to the 2023 release

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions