Skip to content

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

@lohedges

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.)

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