id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,lang,patch,platform
2188,Missing path in exception stack trace,Eclesia,,"When catching an exception, the last exception path element is missing.

At least two files are requiered to reproduce the bug :

File : exptest.wx
{{{
$load 'friend.pbc';

namespace em{
    
    class User{
        
        function User(){}
        
        function call0(){
            try{
                self.call1();
            }catch(ex){
                say(ex['message']);
                for(string exstr in ex.backtrace_strings()){
                    for(string str in split(""\n"",exstr)){
                        say(str);
                    }
                }
            }

            say(""--------------------------------------------"");
            self.call1();
        }
        
        
        function call1(){
            var friend = new em.Friend();
            friend.call();
        }
        
    }
        
}

function main(){
    var user = new em.User();
    user.call0();
}
}}}

file : friend.wx
{{{
namespace em{
        
    class Friend{
        
        function Friend(){}
        
        function call(){
            throw new 'Exception'({
                        ""message""   : ""Damned ! an exception !"",
                        ""severity""  : 100});
        }
        
    }
    
}
}}}


Then compile everything and run :
{{{
winxed -c -o friend.pir friend.wx
parrot -o friend.pbc friend.pir
winxed -c -o exptest.pir exptest.wx
parrot exptest.pir
}}}

the output result prints two different stacks.
{{{
Damned ! an exception !
called from Sub 'parrot;em;Friend;call' pc 30 (friend.pir:23) (exptest.wx:39)
called from Sub 'parrot;em;User;call1' pc 130 (exptest.pir:0) (exptest.wx:29)
current instr.: 'parrot;em;User;call0' pc 51 (exptest.pir:47) (exptest.wx:15)
called from Sub 'main' pc 161 (exptest.pir:97) (exptest.wx:38)

--------------------------------------------
Damned ! an exception !
current instr.: 'parrot;em;Friend;call' pc 30 (friend.pir:23) (friend.wx:9)
called from Sub 'parrot;em;User;call1' pc 130 (exptest.pir:0) (exptest.wx:29)
called from Sub 'parrot;em;User;call0' pc 102 (exptest.pir:81) (exptest.wx:23)
called from Sub 'main' pc 161 (exptest.pir:97) (exptest.wx:38)
}}}",bug,closed,normal,,none,3.7.0,high,fixed,,,,,
