X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fexternal%2Fbackward-cpp%2Ftest_package%2Fmain.cpp;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fexternal%2Fbackward-cpp%2Ftest_package%2Fmain.cpp;h=aa3cd11468852aacc684b31ecc0f7c0130c29877;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/external/backward-cpp/test_package/main.cpp b/src/type3_AndroidCloud/anbox-master/external/backward-cpp/test_package/main.cpp new file mode 100644 index 0000000..aa3cd11 --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/external/backward-cpp/test_package/main.cpp @@ -0,0 +1,60 @@ +#include +#include +#include +#include + +using namespace backward; + +class TracedException : public std::runtime_error +{ +public: + TracedException() : + std::runtime_error(_get_trace()) + {} + +private: + std::string _get_trace() + { + std::ostringstream ss; + + StackTrace stackTrace; + TraceResolver resolver; + stackTrace.load_here(); + resolver.load_stacktrace(stackTrace); + + for(std::size_t i = 0; i < stackTrace.size(); ++i) + { + const ResolvedTrace trace = resolver.resolve(stackTrace[i]); + + ss << "#" << i << " at " << trace.object_function << "\n"; + } + + return ss.str(); + } +}; + +void f(int i) +{ + if(i >= 42) + { + throw TracedException(); + } + else + { + std::cout << "i=" << i << "\n"; + f(i + 1); + } +} + +int main() +{ + try + { + f(0); + } catch (const TracedException& ex) + { + std::cout << ex.what(); + } +} + +