diff --git a/lib/master.pike.in b/lib/master.pike.in index 49af7bbcd4760bb9bdca06a82f6828a62db44157..bdc6ffcafe31c85d99512becc40180a7e0333a76 100644 --- a/lib/master.pike.in +++ b/lib/master.pike.in @@ -1,6 +1,6 @@ /* -*- Pike -*- * - * $Id: master.pike.in,v 1.107 2000/03/25 21:28:37 hubbe Exp $ + * $Id: master.pike.in,v 1.108 2000/03/26 15:11:34 mast Exp $ * * Master-file for Pike. * @@ -1331,9 +1331,14 @@ string stupid_describe(mixed m, int maxlen) if(string tmp=describe_program(m)) return tmp; if(object o=function_object(m)) return (describe_object(o)||"")+"->"+function_name(m); - else - return function_name(m) || "function"; - + else { + string tmp; + if (catch (tmp = function_name(m))) + // The function object has probably been destructed. + return "function"; + return tmp || "function"; + } + case "program": if(string tmp=describe_program(m)) return tmp; return typ; @@ -1585,7 +1590,7 @@ string describe_backtrace(mixed trace, void|int linewidth) } } }) { - row += sprintf("Error indexing backtrace line %d (%O)!", e, err[1]); + row += sprintf("Error indexing backtrace line %d: %s (%O)!", e, err[0], err[1]); } ret += row + "\n"; }