Added a recursive loop stress test for the unwinder. Not a real world test

by any means, but something to stress test our unwinder with 260,000+ frames
on a standard darwin thread.

llvm-svn: 123037
This commit is contained in:
Greg Clayton 2011-01-07 22:10:25 +00:00
parent 36f0a06593
commit 46595b9ae2
2 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,5 @@
LEVEL = ../make
C_SOURCES := main.c
include $(LEVEL)/Makefile.rules

28
lldb/test/recurse/main.c Normal file
View File

@ -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;
}