Fix fep looping

db4
Slava Pestov 2008-10-09 00:13:04 -05:00
parent d89868f377
commit 6130aeb88f
3 changed files with 13 additions and 3 deletions

View File

@ -325,6 +325,12 @@ void find_code_references(CELL look_for_)
void factorbug(void)
{
if(fep_disabled)
{
printf("Low level debugger disabled\n");
exit(1);
}
open_console();
printf("Starting low level debugger...\n");
@ -366,6 +372,8 @@ void factorbug(void)
dump stacks. This is useful for builder and
other cases where Factor is run with stdin
redirected to /dev/null */
fep_disabled = true;
print_datastack();
print_retainstack();
print_callstack();

View File

@ -4,4 +4,6 @@ void dump_generations(void);
void factorbug(void);
void dump_zone(F_ZONE *z);
bool fep_disabled;
DECLARE_PRIMITIVE(die);

View File

@ -57,10 +57,10 @@ void throw_error(CELL error, F_STACK_FRAME *callstack_top)
crash. */
else
{
fprintf(stderr,"You have triggered a bug in Factor. Please report.\n");
fprintf(stderr,"early_error: ");
printf("You have triggered a bug in Factor. Please report.\n");
printf("early_error: ");
print_obj(error);
fprintf(stderr,"\n");
printf("\n");
factorbug();
}
}