|
| 1 | +#include "cpptrace/basic.hpp" |
| 2 | +#include "cpptrace/utils.hpp" |
| 3 | +#include <cpptrace/cpptrace.hpp> |
| 4 | + |
| 5 | +#include <iostream> |
| 6 | + |
| 7 | +// These are just here to make sure all symbols are found |
| 8 | + |
| 9 | +int main() { |
| 10 | + auto r = cpptrace::raw_trace::current(); |
| 11 | + r = cpptrace::raw_trace::current(0, 100); |
| 12 | + r.resolve(); |
| 13 | + r.clear(); |
| 14 | + r.empty(); |
| 15 | + |
| 16 | + auto o = cpptrace::object_trace::current(); |
| 17 | + o = cpptrace::object_trace::current(0, 100); |
| 18 | + o.resolve(); |
| 19 | + o.clear(); |
| 20 | + o.empty(); |
| 21 | + |
| 22 | + auto s = cpptrace::stacktrace::current(); |
| 23 | + s = cpptrace::stacktrace::current(0, 100); |
| 24 | + s.print(); |
| 25 | + s.print(std::cerr); |
| 26 | + s.print(std::cerr, true); |
| 27 | + s.print_with_snippets(); |
| 28 | + s.print_with_snippets(std::cerr); |
| 29 | + s.print_with_snippets(std::cerr, true); |
| 30 | + s.to_string(); |
| 31 | + std::cerr<<s<<std::endl; |
| 32 | + auto f = s.frames[0]; |
| 33 | + f.get_object_info(); |
| 34 | + f.to_string(); |
| 35 | + f.to_string(true); |
| 36 | + std::cerr<<f<<std::endl; |
| 37 | + s.clear(); |
| 38 | + s.empty(); |
| 39 | + |
| 40 | + cpptrace::generate_raw_trace(); |
| 41 | + cpptrace::generate_raw_trace(0, 100); |
| 42 | + cpptrace::generate_object_trace(); |
| 43 | + cpptrace::generate_object_trace(0, 100); |
| 44 | + cpptrace::generate_trace(); |
| 45 | + cpptrace::generate_trace(0, 100); |
| 46 | + |
| 47 | + cpptrace::safe_generate_raw_trace(nullptr, 0, 0); |
| 48 | + cpptrace::safe_generate_raw_trace(nullptr, 0, 0, 0); |
| 49 | + |
| 50 | + cpptrace::safe_object_frame sf; |
| 51 | + cpptrace::get_safe_object_frame(0, &sf); |
| 52 | + cpptrace::can_signal_safe_unwind(); |
| 53 | + cpptrace::can_get_safe_object_frame(); |
| 54 | + |
| 55 | + cpptrace::register_jit_object(nullptr, 0); |
| 56 | + cpptrace::unregister_jit_object(nullptr); |
| 57 | + cpptrace::clear_all_jit_objects(); |
| 58 | + |
| 59 | + cpptrace::lazy_exception l; |
| 60 | + l.what(); |
| 61 | + l.message(); |
| 62 | + l.trace(); |
| 63 | + |
| 64 | + cpptrace::demangle("test"); |
| 65 | + cpptrace::get_snippet(__FILE__, 1, 1); |
| 66 | + cpptrace::isatty(cpptrace::stderr_fileno); |
| 67 | + |
| 68 | + cpptrace::register_terminate_handler(); |
| 69 | + |
| 70 | + cpptrace::absorb_trace_exceptions(true); |
| 71 | + |
| 72 | + cpptrace::enable_inlined_call_resolution(true); |
| 73 | + |
| 74 | + cpptrace::set_log_level(cpptrace::log_level::debug); |
| 75 | + cpptrace::set_log_callback([](cpptrace::log_level, const char*) {}); |
| 76 | + cpptrace::use_default_stderr_logger(); |
| 77 | + |
| 78 | + cpptrace::experimental::set_cache_mode(cpptrace::cache_mode::hybrid); |
| 79 | + |
| 80 | + cpptrace::experimental::set_dwarf_resolver_line_table_cache_size(100); |
| 81 | + cpptrace::experimental::set_dwarf_resolver_disable_aranges(true); |
| 82 | +} |
0 commit comments