Il y a des esprits qui vont à l’erreur par toutes les vérités ; il en est de plus heureux qui vont aux grandes vérités par toutes les erreurs. Joseph Joubert

En cours de finition du logger développé en parallèlle de drops cms, le hasard m’a conduit à ce petit raccourci bien utile en phase de debug. Le concept est fort simple, générer une erreur pour récupérer le contexte d’exécution.

/**
 * Returns stack trace from where the method is called.
 *
 * @param skipLast    number of stack levels to be removed from the top (closest to the method call)
 */

public static function _getStackTrace(skipLast:int = 0):String
{
  var stackTrace:String = '';
  var err:Error = new Error();
  var lines:Array = err.getStackTrace().split('\n');
  skipLast += 2;// remove error and current function
  while (--skipLast >= 0){
    lines.shift();
  }
  return lines.join('\n');
}