On Fri, 4 Feb 2005, Andy Dougherty wrote:

> On Solaris/SPARC, I'm still seeing failure on the tests others have
> reported problems for.
>
> Failed 3/133 test scripts, 97.74% okay. 30/2167 subtests failed, 98.62%
> okay.
> Failed Test            Stat Wstat Total Fail  Failed  List of Failed
> -------------------------------------------------------------------------------
> t/dynclass/pybuiltin.t    3   768     6    3  50.00%  2 4-5
> t/dynclass/pyclass.t      3   768     6    3  50.00%  2 5-6
> t/dynclass/pyint.t       24  6144    25   24  96.00%  1-10 12-25
> 7 tests and 66 subtests skipped.

Here are some more details:

[EMAIL PROTECTED] ([EMAIL PROTECTED]) signal SEGV (no mapping at the fault 
address) in
    Parrot_switch_to_cs at line 2136 in file "packfile.c"
 2136       if (new_cs->base.pf != interpreter->code)
(dbx) where
current thread: [EMAIL PROTECTED]
=>[1] Parrot_switch_to_cs(interpreter = 0x5800d0, new_cs = 0x9de3bf70, really = 
1), line 2136 in "packfile.c"
  [2] Parrot_Sub_invoke(interpreter = 0x5800d0, pmc = 0x78daa0, next = 
0x864dc0), line 240 in "sub.c"
  [3] Parrot_Closure_invoke(interpreter = 0x5800d0, pmc = 0x78daa0, next = 
0x864dc0), line 84 in "closure.c"
  [4] Parrot_PyFunc_invoke(interpreter = 0x5800d0, pmc = 0x78daa0, next = 
0x864dc0), line 171 in "pyfunc.pmc"
  [5] Parrot_invoke(cur_opcode = 0x864dbc, interpreter = 0x5800d0), line 421 in 
"core.ops"
  [6] runops_slow_core(interpreter = 0x5800d0, pc = 0x864dbc), line 147 in 
"runops_cores.c"
  [7] runops_int(interpreter = 0x5800d0, offset = 0), line 742 in 
"interpreter.c"
  [8] runops(interpreter = 0x5800d0, offs = 0), line 81 in "inter_run.c"
  [9] Parrot_runcode(interpreter = 0x5800d0, argc = 1, argv = 0xffbefa90), line 
768 in "embed.c"
  [10] Parrot_runcode(interpreter = 0x5800d0, argc = 1, argv = 0xffbefa90), 
line 700 in "embed.c"
  [11] main(argc = 1, argv = 0xffbefa90), line 603 in "main.c"

The new_cs structure is coming from Parrot_Sub_invoke in the file sub.c.
It's generated with line 232:
  232   struct Parrot_sub * sub = PMC_sub(pmc);

At this point, the 'sub' structure doesn't appear to have anything useful.
(dbx) print *sub
*sub = {
    seg          = 0x9de3bf70
    address      = 0xf227a048
    end          = 0xf027a044
    name         = 0xe007a044
    packed       = 0x90140000 "<bad address 0x90140000>"
    use_reg_offs = 1080280737U
    pad_stack    = 0x1000000
}

Attempts to access any of those members yield error messages, like

    (dbx) print *sub->name
    dbx: cannot access address 0xe007a044

Tracing back further, I lost track and couldn't figure out who was
ultimately responsible for ensuring that 'pmc' was properly initialized,
so I got stuck here.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to