#901: eval is broken in parrot_debugger
----------------------+-----------------------------------------------------
 Reporter:  dukeleto  |       Owner:  dukeleto
     Type:  bug       |      Status:  new     
 Priority:  normal    |   Milestone:  1.7     
Component:  none      |     Version:  1.4.0   
 Severity:  medium    |    Keywords:          
     Lang:            |       Patch:          
 Platform:            |  
----------------------+-----------------------------------------------------

Comment(by dukeleto):

 I have traced this to the call to VTABLE_invoke(interp, compiler, buf) in
 PDB_compile() in src/debug.c :

 {{{
 PARROT_CAN_RETURN_NULL
 opcode_t *
 PDB_compile(PARROT_INTERP, ARGIN(const char *command))
 {
     ASSERT_ARGS(PDB_compile)
     STRING     *buf;
     const char *end      = "\nend\n";
     STRING     *key      = CONST_STRING(interp, "PASM");
     PMC *compreg_hash    = VTABLE_get_pmc_keyed_int(interp,
             interp->iglobals, IGLOBALS_COMPREG_HASH);
     PMC        *compiler = VTABLE_get_pmc_keyed_str(interp, compreg_hash,
 key);

     if (!VTABLE_defined(interp, compiler)) {
         fprintf(stderr, "Couldn't find PASM compiler");
         return NULL;
     }

     buf = Parrot_sprintf_c(interp, "%s%s", command, end);

     return VTABLE_invoke(interp, compiler, buf);   <---- BOOM
 }
 }}}
 The VTABLE_invoke call generates the NCI error.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/901#comment:1>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to