#include <xs.h>
#include "src/xs/backtrace.h"
#include <panda/backtrace.h>
using namespace xs;
using namespace panda;
MODULE = Exception::Backtrace PACKAGE = Exception::Backtrace
PROTOTYPES: DISABLE
BOOT {
backtrace_c_marker.svt_free = &xs::payload_backtrace_c_free;
install_exception_processor(); // XS::Framework
panda::backtrace::install();
xs::at_perl_destroy([]{
panda::backtrace::uninstall();
});
}
panda::string get_backtrace_string(Ref except) {
RETVAL = get_backtrace_string(except);
}
panda::string get_backtrace_string_pp(Ref except) {
RETVAL = get_backtrace_string_pp(except);
}
iptr<DualTrace> get_backtrace(Ref except) {
RETVAL = get_backtrace(except);
}
iptr<DualTrace> create_backtrace() {
RETVAL = create_backtrace();
}
Sv safe_wrap_exception(Sv ex) { RETVAL = safe_wrap_exception(ex); }
INCLUDE: xs/DualTrace.xsi
INCLUDE: xs/BacktraceInfo.xsi
INCLUDE: xs/PerlTraceInfo.xsi
INCLUDE: xs/PerlFrame.xsi
INCLUDE: xs/Stackframe.xsi