Accélérer le débogage avec DebuggerHiddenAttribute

Ou comment ne pas passer trois plombes à parcourir ligne à ligne des méthodes qui ne vous importent pas. La suite ci-dessous.Il m’arrive très souvent de vouloir suivre ligne à ligne l’exécution d’une partie du code en utilisant la commande Step Into (F11). L’ennui, c’est qu’on se retrouve plus souvent qu’autrement à l’intérieur de méthodes aussi peut intéressantes que :

public double Prime
{
  get
  {
     return _prime;
  }
}

Évidemment, on peut éviter d’entrer dans ce type de méthode en utilisant plutôt Step Over (F10). Mais ce n’est pas toujours possible : par exemple, dans cette ligne :

double montantInteret = CalculerInteret( Duree, Prime, TauxInteret );

Si l’on veut entrer dans CalculerInteret(), on fera typiquement F11 sur cette ligne. Et il faudra alors traverser la méthode Get de Prime, de Duree et de TauxInteret

Une solution consiste à aller à la définition de CalculerInteret() et de faire Run to cursor. Une autre méthode, pas mal plus efficace, consiste à cacher les méthodes inintéressantes…

Comment cacher les méthodes inintéressantes

Les méthodes possédant l’attribut DebuggerHiddenAttribute ne sont pas visibles dans le débogueur :

[DebuggerHidden]
public double Prime
{
  get
  {
  return _prime;
  }
}

Lorsqu’on exécute Step Into sur une telle méthode, le débogueur passe tout simplement à la ligne suivante.

Attention : il n’est pas possible de placer un point d’arrêt dans les méthodes marquées avec cet attribut. Si on souhaite cacher une méthode tout en permettant d’y placer un point d’arrêt, il faut utiliser l’attribut DebuggerStepThroughAttribute :

[DebuggerStepThrough]
public double Prime
{
  get
  {
     return _prime;
  }
}

Ajouter un commentaire

Les retours à la ligne suivantes sont automatiques.
Codes XHTML permis : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>