pike.git / lib / master.pike.in

version» Context lines:

pike.git/lib/master.pike.in:1:   // -*- Pike -*-   //   // Master Control Program for Pike.   //   // This file is part of Pike. For copyright information see COPYRIGHT.   // Pike is distributed under GPL, LGPL and MPL. See the file COPYING   // for more information.   // - // $Id: master.pike.in,v 1.428 2008/05/30 17:01:48 mast Exp $ + // $Id: master.pike.in,v 1.429 2008/05/30 21:57:59 grubba Exp $      #pike __REAL_VERSION__   //#pragma strict_types      // Some programs destroys character pairs beginning with the currency   // symbol when running in chinese locale.   #if "ยค/" != "\244/"   #error "master.pike.in is corrupted."   #endif   
pike.git/lib/master.pike.in:3245:    while(sscanf(code, "%sCHAR(%1s)%s", code, string c, string rest)==3)    code += c[0] + rest;    prog = compile_string(    "#define NOT(X) !(X)\n"    "mixed run(int argc, array(string) argv,"    "mapping(string:string) env){"+    code+";}");    }    };    -  if (compile_err && compile_err->is_cpp_or_compilation_error) { +  if (compile_err) { +  if (compile_err->is_cpp_or_compilation_error) {    // Don't clutter the output with the backtrace for    // compilation errors.    werror (describe_error (compile_err));    exit (20);    }    else throw (compile_err); -  +  }      #if constant(_debug)    if(debug) _debug(debug);   #endif    if(trace) trace = predef::trace(trace);    mixed ret;    mixed err = catch {    // One reason for this catch is to get a new call to    // eval_instruction in interpret.c so that the debug and    // trace levels set above take effect in the bytecode
pike.git/lib/master.pike.in:4182:    if(!trace)    return ret + "<No backtrace>\n";    else if (!arrayp (trace))    return sprintf ("%s<Backtrace in error array is %t, expected array>\n",    ret, trace);    }    else    ret = "";    }    -  else -  return sprintf ("<Invalid backtrace/error container: %O>\n", trace); +  else { +  _gdb_breakpoint(); +  return sprintf ("<Invalid backtrace/error container: %O>\n" +  "%s\n", trace, describe_backtrace(backtrace())); +  }       {    Describer desc = Describer();    array trace = [array]trace;       int end = 0;    if( (sizeof(trace)>1) &&    arrayp(trace[0]) &&    (sizeof([array]trace[0]) > 2) &&    (([array]trace[0])[2] == _main))