Ticket #2188 (closed bug: fixed)
Missing path in exception stack trace
| Reported by: | Eclesia | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | none | Version: | 3.7.0 |
| Severity: | high | Keywords: | |
| Cc: | Language: | ||
| Patch status: | Platform: |
Description (last modified by Eclesia) (diff)
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)
Change History
Note: See
TracTickets for help on using
tickets.
