From fe0c58e5fbaa37668779ec10d2761e6657b824f4 Mon Sep 17 00:00:00 2001 From: Johannes Stoelp Date: Mon, 9 Sep 2024 22:58:51 +0200 Subject: initial commit of libbt --- example/raise1.c | 17 +++++++++++++++++ example/raise2.c | 25 +++++++++++++++++++++++++ example/recurse1.c | 17 +++++++++++++++++ example/recurse2.c | 26 ++++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 example/raise1.c create mode 100644 example/raise2.c create mode 100644 example/recurse1.c create mode 100644 example/recurse2.c (limited to 'example') diff --git a/example/raise1.c b/example/raise1.c new file mode 100644 index 0000000..a0be4f5 --- /dev/null +++ b/example/raise1.c @@ -0,0 +1,17 @@ +#include + +// Raise from main thread. + +void foo() { + raise(SIGSEGV); +} +void bar() { + foo(); +} +void qux() { + bar(); +} + +int main() { + qux(); +} diff --git a/example/raise2.c b/example/raise2.c new file mode 100644 index 0000000..056a341 --- /dev/null +++ b/example/raise2.c @@ -0,0 +1,25 @@ +#include +#include + +// Raise from different thread. + +void foo() { + raise(SIGSEGV); +} +void bar() { + foo(); +} +void qux() { + bar(); +} + +void* thread(void*) { + qux(); + return 0; +} + +int main() { + pthread_t th; + pthread_create(&th, NULL, thread, NULL); + pthread_join(th, NULL); +} diff --git a/example/recurse1.c b/example/recurse1.c new file mode 100644 index 0000000..e5a86bc --- /dev/null +++ b/example/recurse1.c @@ -0,0 +1,17 @@ +// Stack overflow on main thread. + +void qux(); + +void foo() { + qux(); +} +void bar() { + foo(); +} +void qux() { + bar(); +} + +int main() { + foo(); +} diff --git a/example/recurse2.c b/example/recurse2.c new file mode 100644 index 0000000..1fe1c4d --- /dev/null +++ b/example/recurse2.c @@ -0,0 +1,26 @@ +#include + +// Stack overflow on different thread. + +void qux(); + +void foo() { + qux(); +} +void bar() { + foo(); +} +void qux() { + bar(); +} + +void* thread(void*) { + foo(); + return 0; +} + +int main() { + pthread_t th; + pthread_create(&th, NULL, thread, NULL); + pthread_join(th, NULL); +} -- cgit v1.2.3