Stavo cercando di eseguire il debug di OnModelCreated dal mio DBContext come descritto qui: EF Core Aggiungi il debug della migrazione inserendo System.Diagnostics.Debugger.Launch()
Quindi ho eseguito il comando > dotnet ef migrations list
e ho ricevuto il prompt per il collegamento di un debugger. Ho scelto VS in esecuzione, dove è stata caricata la soluzione corretta.
Poi ho visto file e avvertenze smontati per non aver trovato il debugger.cpp e qualsiasi altra cosa. Ho scelto di impostare un breakpoint direttamente dopo il summenzionato Debugger.Launch()
che poi mi ha detto
Breakpoint, non verrà colpito, poiché nessun simbolo è stato caricato "
Bene: la finestra del modulo, molto probabilmente ne saprà qualcosa.
Quindi aprendo la finestra del modulo e cercando il mio .dll. - Eccolo lì - con una piccola croce rossa in cima.
Fare clic con il pulsante destro del mouse sul modulo: Stati di caricamento del simbolo:
Questo modulo è un binario precompilato creato dallo strumento ngen.exe. Il debugger non tenta di caricare i simboli per questi binari, ma caricherà invece i simboli per dll / exe originali quando viene caricato da .NET Runtime.
E lo stato dei simboli dagli stati del file:
| Nome | SymbolStatus | Processo |
| DataAccess.Migrations.dll | Il debugger nativo ha saltato i simboli di caricamento per il modulo gestito. | [21808] dotnet.exe |
Mentre scrivo questo, sembra che VS cerchi di eseguire il debug del codice nativo invece del codice gestito. C'è un modo per risolvere questo o saltare in "modalità mista di debug"?
Sembra che il debugger salti i file non nell'ambiente .NET. Soluzione: controlla Debug -> Generale -> Abilita solo il mio codice
Per la modalità mista: Nome progetto -> Proprietà-> Debug -> Tipo debugger: