OK; en supposant que ce code s'exécute en mode débogage -Pourquoi ne puis-je obtenir aucun numéro de ligne d'une trace de pile créée à partir d'exceptions?
static StackFrame GetTopFrameWithLineNumber(Exception e)
{
StackTrace trace = new StackTrace(e);
foreach (StackFrame frame in trace.GetFrames())
{
if (frame.GetFileLineNumber() != 0)
{
return frame;
}
}
return null;
}
Je retourne TOUJOURS la valeur null. Pourquoi les trames de la pile n'ont-elles pas de numéro de ligne alors que si j'inspecte la chaîne Exception.StackTrace
, est-ce que cela est clair pour tout code non-framework? Y at-il un problème avec la construction d'une trace de pile à partir d'une exception dont je ne suis pas au courant?
EDIT FOR CLARITY: Dans l'exception levée, je peux voir les numéros de ligne dans la propriété StackTrace. Je suppose que cela signifie que j'ai tout ce dont j'ai besoin.
Puis-je voir les numéros de ligne dans la chaîne exception.stacktrace mais cela ne signifie-t-il pas que j'ai le pdb? – Stimul8d
Je ne pense pas qu'il s'agit d'un cas de pdb manquant car il est capable de voir les numéros de ligne. –
ahh, donc c'est le cas; bon appel. – Stimul8d