Hi, On Tuesday 30 March 2004 17:03, Leopold Toetsch wrote: > Jens Rieks <[EMAIL PROTECTED]> wrote: > > tar xzf err13.tgz > > cd err13 > >=2E./parrot languages/EBNF/main.imc ebnf/precedence1.ebnf > > > > chrashes, running parrot with -G works. > > Can you look again please. It's still crashing but runs much further now. It is still crashing at the same (C code) point, but the bug is triggered later. I think that it is related to the heavy string usage of the parser. Running parrot with tracing enabled will crash it earlier than without.
../parrot -t languages/EBNF/main.imc ebnf/precedence1.ebnf 2>/dev/null GC GC GC GC DOD GC '(*' = code=10 ebnf/precedence1.ebnf:1:1 debug: calling EBNF::Parser::parseCommentSymbol ebnf/precedence1.ebnf:1:1 debug: comment start DOD DOD GC ebnf/precedence1.ebnf:1:19 debug: comment end DOD ' ' = code=1 '(*' = code=10 ebnf/precedence1.ebnf:2:1 debug: calling EBNF::Parser::parseCommentSymbol ebnf/precedence1.ebnf:2:1 debug: comment start DOD GC Speicherzugriffsfehler (DOD and GC should be printed to stderr, should'nt it?) gdb ../parrot [snip] (gdb) r languages/EBNF/main.imc ebnf/precedence1.ebnf Starting program: /home/jrieks/projekte/parrot/parrot languages/EBNF/main.imc ebnf/precedence1.ebnf [New Thread 16384 (LWP 12554)] [New Thread 32769 (LWP 12556)] [New Thread 16386 (LWP 12557)] [New Thread 32771 (LWP 12558)] '(*' = code=10 ebnf/precedence1.ebnf:1:1 debug: calling EBNF::Parser::parseCommentSymbol ebnf/precedence1.ebnf:1:1 debug: comment start ebnf/precedence1.ebnf:1:19 debug: comment end ' ' = code=1 '(*' = code=10 ebnf/precedence1.ebnf:2:1 debug: calling EBNF::Parser::parseCommentSymbol ebnf/precedence1.ebnf:2:1 debug: comment start ebnf/precedence1.ebnf:2:33 debug: comment end ' ' = code=1 'a' = code=3 '=' = code=13 ebnf/precedence1.ebnf:3:2 debug: Atom::created called for class EBNF::Sequence ebnf/precedence1.ebnf:3:2 debug: calling EBNF::Sequence::pushTerminal( 'a' ) ebnf/precedence1.ebnf:3:1 debug: end of terminal 'a' ebnf/precedence1.ebnf:3:2 debug: calling EBNF::Parser::definingSymbol ebnf/precedence1.ebnf:3:2 debug: Atom::created called for class EBNF::MetaIdentifier ebnf/precedence1.ebnf:3:2 debug: defining meta-identifier 'a' ebnf/precedence1.ebnf:3:2 debug: Atom::newTarget called for class EBNF::MetaIdentifier ebnf/precedence1.ebnf:3:2 debug: setTarget = EBNF::SingleDefinition ebnf/precedence1.ebnf:3:2 debug: Atom::newTarget called for class EBNF::SingleDefinition 'Q' = code=3 '|' = code=14 ebnf/precedence1.ebnf:3:4 debug: calling EBNF::DefinitionsList::pushTerminal( 'Q' ) ebnf/precedence1.ebnf:3:3 debug: end of terminal 'Q' ebnf/precedence1.ebnf:3:4 debug: calling EBNF::DefinitionsList::definitionSeperator ebnf/precedence1.ebnf:3:4 debug: Atom::newTarget called for class EBNF::DefinitionsList ebnf/precedence1.ebnf:3:4 debug: setTarget = EBNF::SingleDefinition 'x' = code=3 ',' = code=12 ebnf/precedence1.ebnf:3:6 debug: calling EBNF::SingleDefinition::pushTerminal( 'x' ) Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 12554)] 0x080c0945 in pobject_lives (interpreter=0x82193d0, obj=0x40205120) at src/dod.c:141 141 if (*dod_flags & ((PObj_on_free_list_FLAG | PObj_live_FLAG) << nm)) (gdb) bt #0 0x080c0945 in pobject_lives (interpreter=0x82193d0, obj=0x40205120) at src/dod.c:141 #1 0x080b84c1 in list_mark (interpreter=0x82193d0, list=0x4109dd80) at src/list.c:1366 #2 0x0819d0cf in Parrot_Array_mark (interpreter=0x82193d0, pmc=0x40385ac0) at array.c:180 #3 0x080c0e48 in trace_children (interpreter=0x82193d0, current=0x40385ac0) at src/dod.c:382 #4 0x080c0b70 in trace_active_PMCs (interpreter=0x82193d0, trace_stack=1) at src/dod.c:300 #5 0x080c14d1 in Parrot_do_dod_run (interpreter=0x82193d0, flags=1) at src/dod.c:1029 #6 0x080bf884 in more_traceable_objects (interpreter=0x82193d0, pool=0x8239d20) at src/smallobject.c:110 #7 0x080bf916 in get_free_object (interpreter=0x82193d0, pool=0x8239d20) at src/smallobject.c:176 #8 0x080bfd60 in get_free_pmc (interpreter=0x82193d0, pool=0x8239d20) at src/headers.c:53 #9 0x08088226 in get_new_pmc_header (interpreter=0x82193d0, base_type=41, constant=0) at src/pmc.c:107 #10 0x0808847c in pmc_new_noinit (interpreter=0x82193d0, base_type=41) at src/pmc.c:214 #11 0x0808819c in pmc_new (interpreter=0x82193d0, base_type=41) at src/pmc.c:71 #12 0x080863fa in new_ret_continuation_pmc (interp=0x82193d0, address=0x8603404) at src/sub.c:433 #13 0x080c82ef in Parrot_invokecc (cur_opcode=0x8603400, interpreter=0x82193d0) at core.ops:430 #14 0x0808756d in runops_slow_core (interpreter=0x82193d0, pc=0x8603400) at src/runops_cores.c:146 #15 0x0807b5ed in runops_int (interpreter=0x82193d0, offset=0) at src/interpreter.c:833 #16 0x0807b68f in runops_ex (interpreter=0x82193d0, offset=0) at src/interpreter.c:863 #17 0x0807b854 in runops (interpreter=0x82193d0, offset=0) at src/interpreter.c:935 > leo jens