Kako lahko odpravim "Točka prekinitve trenutno ne bo dosežena. Za ta dokument niso bili naloženi nobeni simboli." opozorilo?

Namizna aplikacija C# v izdaji express. Deloval je, nato pa 5 sekund pozneje ni deloval.

Poskusil sem naslednje.

  • Prepričajte se, da so konfiguracija za odpravljanje napak, zastava za odpravljanje napak in popolne informacije o odpravljanju napak nastavljeni na vseh sklopih.
  • Izbriši vse mape bin in obj ter vse knjižnice DLL, povezane s projektom, iz celotnega računalnika.
  • Ponovno ustvarite projekte, ki povzročajo težave, od začetka.
  • Ponovni zagon.

V rešitvi imam dva projekta WinForms. Eden od njiju naloži informacije o odpravljanju napak, drugi pa ne. Oba se sklicujeta na sklop, za katerega poskušam pridobiti informacije o odpravljanju napak, na popolnoma enak način v projektni datoteki. Kakšne ideje?


Na tem mestu bi rad dodal, predvsem zaradi sebe, ko bom ponovno pregledal to vprašanje, da se simboli ne naložijo, dokler ni naložen sestav, sestav pa se ne naloži, dokler ni potreben. Če je točka prekinitve v knjižnici, ki se uporablja samo v eni funkciji v glavnem sestavu, se simboli ne bodo naložili (in točka prekinitve se bo prikazala kot nedosegljiva), dokler se ta funkcija ne pokliče.

Rešitev

Začetek razhroščevanja, takoj ko pridete do točke prekinitve ali uporabite Debug > Break All, uporabite Debug > Windows > Modules. Videli boste seznam vseh sklopov, ki so naloženi v proces. Poiščite tisto, za katero želite pridobiti informacije o razhroščevanju. Kliknite ga z desno tipko miške in izberite Symbol Load Information. Prikazalo se bo pogovorno okno s seznamom vseh imenikov, v katerih je iskal datoteko .pdb za sestavo. Seznam preverite glede na dejansko lokacijo datoteke .pdb. Prepričajte se, da ni našel stare datoteke.

V običajnih projektih bi moral IDE vedno kopirati sestavek in njegovo datoteko .pdb v isto mapo kot vaš .exe. mapo bin\Debug vašega projekta. Prepričajte se, da ste jo odstranili iz GAC, če ste se z njo igrali.

Komentarji (33)

Samo nekaj preprostega za poskus - morda ste to že poskusili. Z desno tipko miške kliknite rešitev v raziskovalcu rešitev in kliknite "clean solution", kar izbriše vse sestavljene in začasne datoteke, povezane z rešitvijo.

Ponovno sestavite rešitev in poskusite znova odpravljati napake.

Imel sem tudi težave s prekinitvenimi točkami več projektov v rešitvi - nekateri so bili sestavljeni kot x86, drugi kot x64.

Komentarji (8)

V nastavitvah prevajalnika morate omogočiti možnost "Ustvarjanje informacij za odpravljanje napak".

Komentarji (3)