trace_test.c 787 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #ifndef GC_DEBUG
  4. # define GC_DEBUG
  5. #endif
  6. #include "gc.h"
  7. #include "gc_backptr.h"
  8. struct treenode {
  9. struct treenode *x;
  10. struct treenode *y;
  11. } * root[10];
  12. struct treenode * mktree(int i) {
  13. struct treenode * r = GC_NEW(struct treenode);
  14. if (0 == i)
  15. return 0;
  16. if (1 == i)
  17. r = (struct treenode *)GC_MALLOC_ATOMIC(sizeof(struct treenode));
  18. if (r == NULL) {
  19. fprintf(stderr, "Out of memory\n");
  20. exit(1);
  21. }
  22. r -> x = mktree(i-1);
  23. r -> y = mktree(i-1);
  24. return r;
  25. }
  26. int main(void)
  27. {
  28. int i;
  29. GC_INIT();
  30. for (i = 0; i < 10; ++i) {
  31. root[i] = mktree(12);
  32. }
  33. GC_generate_random_backtrace();
  34. GC_generate_random_backtrace();
  35. GC_generate_random_backtrace();
  36. GC_generate_random_backtrace();
  37. return 0;
  38. }