[Lldb-commits] [lldb] r123037 - in /lldb/trunk/test/recurse: ./ Makefile main.c

Greg Clayton gclayton at apple.com
Fri Jan 7 14:10:25 PST 2011


Author: gclayton
Date: Fri Jan  7 16:10:25 2011
New Revision: 123037

URL: http://llvm.org/viewvc/llvm-project?rev=123037&view=rev
Log:
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.


Added:
    lldb/trunk/test/recurse/
    lldb/trunk/test/recurse/Makefile
    lldb/trunk/test/recurse/main.c

Added: lldb/trunk/test/recurse/Makefile
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/recurse/Makefile?rev=123037&view=auto
==============================================================================
--- lldb/trunk/test/recurse/Makefile (added)
+++ lldb/trunk/test/recurse/Makefile Fri Jan  7 16:10:25 2011
@@ -0,0 +1,5 @@
+LEVEL = ../make
+
+C_SOURCES := main.c
+
+include $(LEVEL)/Makefile.rules

Added: lldb/trunk/test/recurse/main.c
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/recurse/main.c?rev=123037&view=auto
==============================================================================
--- lldb/trunk/test/recurse/main.c (added)
+++ lldb/trunk/test/recurse/main.c Fri Jan  7 16:10:25 2011
@@ -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





More information about the lldb-commits mailing list