core: Add gc-debug for stack array.
* src/gc.c (gc_debug): New function.
This commit is contained in:
parent
5826f75c7b
commit
e032f6c70f
74
src/gc.c
74
src/gc.c
|
@ -232,3 +232,77 @@ gc ()
|
||||||
eputs ("\n");
|
eputs ("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SCM
|
||||||
|
gc_debug ()
|
||||||
|
{
|
||||||
|
r0 = MAKE_NUMBER (5);
|
||||||
|
r1 = MAKE_NUMBER (4);
|
||||||
|
r2 = MAKE_NUMBER (3);
|
||||||
|
r3 = MAKE_NUMBER (2);
|
||||||
|
|
||||||
|
gc_push_frame ();
|
||||||
|
for (long i=g_stack; i<STACK_SIZE; i++)
|
||||||
|
{
|
||||||
|
long c = g_stack_array[i];
|
||||||
|
eputs ("stack["); eputs (itoa (i-STACK_SIZE)); eputs ("]: "); eputs (itoa (c));
|
||||||
|
int t = TYPE (c);
|
||||||
|
eputs (" ");
|
||||||
|
eputs (itoa (t));
|
||||||
|
if (t == TSYMBOL || t == TSPECIAL || t == TNUMBER)
|
||||||
|
{
|
||||||
|
eputs (" ");
|
||||||
|
write_error_ (c);
|
||||||
|
}
|
||||||
|
eputs ("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
gc_ ();
|
||||||
|
|
||||||
|
eputs ("\n");
|
||||||
|
for (long i=g_stack; i<STACK_SIZE; i++)
|
||||||
|
{
|
||||||
|
long c = g_stack_array[i];
|
||||||
|
eputs ("stack["); eputs (itoa (i-STACK_SIZE)); eputs ("]: "); eputs (itoa (c));
|
||||||
|
int t = TYPE (c);
|
||||||
|
eputs (" ");
|
||||||
|
eputs (itoa (t));
|
||||||
|
if (t == TSYMBOL || t == TSPECIAL || t == TNUMBER)
|
||||||
|
{
|
||||||
|
eputs (" ");
|
||||||
|
write_error_ (c);
|
||||||
|
}
|
||||||
|
if (t == TBROKEN_HEART)
|
||||||
|
{
|
||||||
|
eputs (" ");
|
||||||
|
c = g_cells[c].car;
|
||||||
|
|
||||||
|
eputs ("=> "); eputs (itoa (c));
|
||||||
|
int t = TYPE (c);
|
||||||
|
eputs (" ");
|
||||||
|
eputs (itoa (t));
|
||||||
|
if (t == TSYMBOL || t == TSPECIAL || t == TNUMBER)
|
||||||
|
{
|
||||||
|
eputs (" ");
|
||||||
|
write_error_ (c);
|
||||||
|
}
|
||||||
|
// if (t == TBROKEN_HEART)
|
||||||
|
// {
|
||||||
|
// eputs (" ");
|
||||||
|
// c = g_cells[c].car;
|
||||||
|
|
||||||
|
// eputs ("=> "); eputs (itoa (c));
|
||||||
|
// int t = TYPE (c);
|
||||||
|
// eputs (" ");
|
||||||
|
// eputs (itoa (t));
|
||||||
|
// if (t == TSYMBOL || t == TSPECIAL || t == TNUMBER)
|
||||||
|
// {
|
||||||
|
// eputs (" ");
|
||||||
|
// write_error_ (c);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
eputs ("\n");
|
||||||
|
}
|
||||||
|
gc_pop_frame ();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue