# 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