# New Ticket Created by  FranÃois PERRAD 
# Please include the string:  [perl #35083]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=35083 >



With parrot r7902 (compiled with MinGW), ActivePerl 5.8.6 (build 811), on 
Win2000.

$ parrot t/op/debuginfo_4.imc
ok 1
ok 2
ok 3
ok 4
ok 5
Null PMC access in invoke()
current instr.: 'd' pc 149 (t/op/debuginfo_4.imc:24)
called from Sub 'c' pc 116 (t/op/debuginfo_4.imc:18)
called from Sub 'b' pc 85 (t/op/debuginfo_4.imc:13)
called from Sub 'a' pc 54 (t/op/debuginfo_4.imc:8)
called from Sub 'main' pc 23 (t/op/debuginfo_4.imc:3)

And it's OK, but

$ perl t/harness t/op/debuginfo.t
#     Failed test (t/op/debuginfo.t at line 75)
#                   'ok 1
# ok 2
# ok 3
# ok 4
# ok 5
# current instr.: 'd' pc 149 
(D:\Documents\DEV\parrot\svn\trunk\t\op\debuginfo_4.imc:24)
# called from Sub 'c' pc 116 
(D:\Documents\DEV\parrot\svn\trunk\t\op\debuginfo_4.imc:18)
# called from Sub 'b' pc 85 
(D:\Documents\DEV\parrot\svn\trunk\t\op\debuginfo_4.imc:13)
# called from Sub 'a' pc 54 
(D:\Documents\DEV\parrot\svn\trunk\t\op\debuginfo_4.imc:8)
# called from Sub 'main' pc 23 
(D:\Documents\DEV\parrot\svn\trunk\t\op\debuginfo_4.imc:3)
# Null PMC access in invoke()
# '
#     doesn't match '/^ok 1
# ok 2
# ok 3
# ok 4
# ok 5
# Null PMC access in invoke\(\)
# current instr\.: 'd' pc (\d+|-1) \(.*?:(\d+|-1)\)
# called from Sub 'c' pc (\d+|-1) \(.*?:(\d+|-1)\)
# called from Sub 'b' pc (\d+|-1) \(.*?:(\d+|-1)\)
# called from Sub 'a' pc (\d+|-1) \(.*?:(\d+|-1)\)
# called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
# '
# '.\parrot.exe  "D:\Documents\DEV\parrot\svn\trunk\t\op\debuginfo_4.imc"' 
failed with exit code 42

The line "Null PMC access in invoke()" jumps at the end after the 
backtrace, and it's unexpected.

I try the following patch, but it solves only subtests 4 and 8.
Index: src/exceptions.c
===================================================================
--- exceptions.c        (revision 7902)
+++ exceptions.c        (working copy)
@@ -53,6 +53,7 @@
      va_start(arglist, format);
      vfprintf(stderr, format, arglist);
      fprintf(stderr, "\n");
+    fflush(stderr);
      va_end(arglist);
      Parrot_exit(exitcode);
  }

For subtests 5-7, the same problem continues with :
        Method 'nosuchmethod' not found
        Lexical 'nosuchlex' not found
        maximum recursion depth exceeded

If somebody has a good idea ...

Francois Perrad


Reply via email to