diff --git a/lib/master.pike.in b/lib/master.pike.in index 9c46d015e7cdbb68dfdda0293685dc7e6f01075a..fd636add8b40092be8d3e3b11cd28bb31b477bea 100644 --- a/lib/master.pike.in +++ b/lib/master.pike.in @@ -1,4 +1,4 @@ -/* $Id: master.pike.in,v 1.42 1999/03/17 21:44:52 hubbe Exp $ +/* $Id: master.pike.in,v 1.43 1999/03/19 11:14:27 hubbe Exp $ * * Master-file for Pike. * @@ -1095,7 +1095,8 @@ string describe_backtrace(mixed *trace) int e; string ret; - if(arrayp(trace) && sizeof(trace)==2 && stringp(trace[0])) + if((arrayp(trace) && sizeof(trace)==2 && stringp(trace[0])) || + (objectp(trace) && trace->is_generic_error)) { ret=trace[0]; trace=trace[1]; diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod index a0507510386202bd2cf5ca0fd126a86ff1c7d0d4..6338c38b4c38641946fe5170dfe9088ee510a9fa 100644 --- a/lib/modules/Tools.pmod/Hilfe.pmod +++ b/lib/modules/Tools.pmod/Hilfe.pmod @@ -83,6 +83,11 @@ import Getopt; { c[1]=c[1][sizeof(backtrace())..]; write(describe_backtrace(c)); + } + else if(objectp(c) && c->is_generic_error) + { + c->__backtrace=c->__backtrace[sizeof(backtrace())..]; + write(describe_backtrace(c)); }else{ write(sprintf("Error in evalutation: %O\n",c)); }