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

View File

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

View File

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