diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2016-01-06 20:12:03 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2016-01-06 20:12:03 +0000 | 
| commit | 9e6d35490a6542f9c97607f93c2ef8ca8e03cbcc (patch) | |
| tree | dd2a1ddf0476664c2b823409c36cbccd52662ca7 /packages/Python/lldbsuite/test/lang/c/recurse | |
| parent | 3bd2e91faeb9eeec1aae82c64a3253afff551cfd (diff) | |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/c/recurse')
| -rw-r--r-- | packages/Python/lldbsuite/test/lang/c/recurse/Makefile | 5 | ||||
| -rw-r--r-- | packages/Python/lldbsuite/test/lang/c/recurse/main.c | 28 | 
2 files changed, 33 insertions, 0 deletions
| diff --git a/packages/Python/lldbsuite/test/lang/c/recurse/Makefile b/packages/Python/lldbsuite/test/lang/c/recurse/Makefile new file mode 100644 index 000000000000..b09a579159d4 --- /dev/null +++ b/packages/Python/lldbsuite/test/lang/c/recurse/Makefile @@ -0,0 +1,5 @@ +LEVEL = ../../../make + +C_SOURCES := main.c + +include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/lang/c/recurse/main.c b/packages/Python/lldbsuite/test/lang/c/recurse/main.c new file mode 100644 index 000000000000..1159669ebf15 --- /dev/null +++ b/packages/Python/lldbsuite/test/lang/c/recurse/main.c @@ -0,0 +1,28 @@ +#include <stdint.h> +#include <stdio.h> + +uint32_t +recurse_crash (uint32_t depth) +{ +    if (depth > 0) +        return recurse_crash (depth - 1); +    return 0; +} + +int +main (int argc, char const *argv[]) +{ +    // If we have more than one argument, then it should a depth to recurse to. +    // If we have just the program name as an argument, use UINT32_MAX so we +    // eventually crash the program by overflowing the stack +    uint32_t depth = UINT32_MAX; +    if (argc > 1) +    { +        char *end = NULL; +        depth = strtoul (argv[1], &end, 0); +        if (end == NULL || *end != '\0') +            depth = UINT32_MAX; +    } +    recurse_crash (depth); +    return 0; +}
\ No newline at end of file | 
