From b1ff59b59c25e4951f72f498b2621779787b32a8 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Mon, 29 Jan 2024 23:17:59 -0600 Subject: [PATCH] Update ctrace demo to be a .c --- CMakeLists.txt | 2 +- test/ctrace_demo.c | 39 +++++++++++++++++++++++++++++ test/ctrace_demo.cpp | 58 -------------------------------------------- 3 files changed, 40 insertions(+), 59 deletions(-) create mode 100644 test/ctrace_demo.c delete mode 100644 test/ctrace_demo.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index eaa8341..127e288 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -541,7 +541,7 @@ endmacro() if(CPPTRACE_BUILD_TESTING) add_executable(test test/test.cpp) add_executable(demo test/demo.cpp) - add_executable(c_demo test/ctrace_demo.cpp) + add_executable(c_demo test/ctrace_demo.c) add_test_dependencies(test) add_test_dependencies(demo) diff --git a/test/ctrace_demo.c b/test/ctrace_demo.c new file mode 100644 index 0000000..b91ef1d --- /dev/null +++ b/test/ctrace_demo.c @@ -0,0 +1,39 @@ +#include +#include +#include +#include + +void trace() { + ctrace_raw_trace raw_trace = ctrace_generate_raw_trace(1, INT_MAX); + ctrace_object_trace obj_trace = ctrace_raw_trace_resolve_object_trace(&raw_trace); + ctrace_stacktrace trace = ctrace_object_trace_resolve(&obj_trace); + ctrace_stacktrace_print(&trace, stdout, 1); + ctrace_free_stacktrace(&trace); + ctrace_free_object_trace(&obj_trace); + ctrace_free_raw_trace(&raw_trace); + assert(raw_trace.frames == NULL && obj_trace.count == 0); +} + +void bar(int n) { + if(n == 0) { + trace(); + } else { + bar(n - 1); + } +} + +void foo(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j) { + bar(1); +} + +void function_two(int a, float b) { + foo(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); +} + +void function_one(int a) { + function_two(0, 0); +} + +int main() { + function_one(0); +} diff --git a/test/ctrace_demo.cpp b/test/ctrace_demo.cpp deleted file mode 100644 index 955de0a..0000000 --- a/test/ctrace_demo.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include - -void test_linker() { - /* Owning String */ { - auto str = ctrace_generate_owning_string("Hello C!"); - std::printf("%s\n", str.data); - ctrace_free_owning_string(&str); - assert(str.data == nullptr); - } /* Trace */ { - ctrace_stacktrace trace = ctrace_generate_trace(0, INT_MAX); - ctrace_owning_string str = ctrace_stacktrace_to_string(&trace, 0); - ctrace_free_stacktrace(&trace); - assert(trace.count == 0); - std::printf("%s\n", str.data); - ctrace_free_owning_string(&str); - } -} - -void trace() { - ctrace_raw_trace raw_trace = ctrace_generate_raw_trace(1, INT_MAX); - ctrace_object_trace obj_trace = ctrace_raw_trace_resolve_object_trace(&raw_trace); - ctrace_stacktrace trace = ctrace_object_trace_resolve(&obj_trace); - ctrace_stacktrace_print(&trace, stdout, 1); - ctrace_free_stacktrace(&trace); - ctrace_free_object_trace(&obj_trace); - ctrace_free_raw_trace(&raw_trace); - assert(raw_trace.frames == nullptr && obj_trace.count == 0); -} - -void foo(int n) { - if(n == 0) { - trace(); - } else { - foo(n - 1); - } -} - -template -void foo(int x, Args... args) { - foo(args...); -} - -void function_two(int, float) { - foo(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); -} - -CTRACE_FORCE_INLINE -void function_one(int) { - function_two(0, 0); -} - -int main() { - test_linker(); - function_one(0); -}