Ho un'applicazione VB.NET 2010 Winforms in cui vorrei includere i numeri di riga nello stack trace. Ho letto la seguente domanda e risponde:Come ottenere i numeri di linea VB.NET nello stack trace
how to print out line number during application run in VB.net
che cita "è sempre necessario includere il file PDB con il codice, che contiene le informazioni di debug che viene utilizzato in situazioni come questa". Nelle impostazioni avanzate del compilatore ho provato "Genera informazioni di debug" come "pdb-only" e "full" per la mia versione di release e ho confermato che un nuovo file PDB viene generato nella stessa directory del mio EXE. Tuttavia il seguente codice di prova genera un numero di linea pari a zero per ogni stack frame e non restituisce un nome di file:
Dim st As StackTrace = New StackTrace(ex)
For Each sf As StackFrame In st.GetFrames
MsgBox("Line " & sf.GetFileLineNumber() & sf.GetFileName)
Next
Tuttavia il seguente codice subito dopo che genera un altrimenti bello traccia dello stack in modo non sembra ad essere un problema con il gestore di eccezioni in generale:
ExceptionDetails.Text = ex.GetType.ToString & "(0x" & hr.ToString("X8") & "): " & ex.Message & vbCrLf & ex.StackTrace
io non riesco a trovare tutte le altre impostazioni probabilmente sotto la configurazione di progetto e si è chiesto se qualcuno aveva idee su altre cose che possono causare questo problema. Tutte le soluzioni che ho trovato cercando qui e altrove sembrano suggerire che il PDB si trovi nello stesso percorso dell'eseguibile.
Questo è fantastico. Grazie per aver postato :) – CrazyTim