Kaip ištaisyti "Šiuo metu pertraukos taškas nebus pasiektas. Šiam dokumentui nebuvo įkelta jokių simbolių." įspėjimas?

C# darbalaukio programa Express Edition. Veikė, o po 5 sekundžių nebeveikė.

Bandžiau šiuos veiksmus.

  • Užtikrinkite, kad visuose rinkiniuose būtų nustatyta derinimo konfigūracija, derinimo vėliava ir išsami derinimo informacija.
  • Ištrinti visus bin ir obj aplankus ir visas su projektu susijusias DLL knygas iš viso kompiuterio.
  • Atkurti problemą keliančius projektus iš naujo.
  • Perkraukite kompiuterį.

Sprendime turiu du "WinForms" projektus. Vienas iš jų įkelia derinimo informaciją, kitas - ne. Abu jie nurodo asemblerį, kurio derinimo informaciją bandau gauti, lygiai taip pat projekto faile. Kokių nors idėjų?


Noriu čia pridurti, daugiausia dėl savęs, kai grįšiu peržiūrėti šio klausimo, kad simboliai neįkeliami, kol neįkeliamas asembleris, o asembleris neįkeliamas, kol jo nereikia. Jei pertraukos taškas yra bibliotekoje, kuri naudojama tik vienoje jūsų pagrindinio asambliažo funkcijoje, simboliai nebus įkelti (ir bus rodoma, kad pertraukos taškas nepasiektas), kol ta funkcija nebus iškviesta.

Sprendimas

Pradėkite derinimą, kai tik pasieksite pertraukos tašką arba panaudosite Debug > Break All, naudokite Debug > Windows > Modules. Pamatysite visų į procesą įkeltų rinkinių sąrašą. Raskite tą, kurios derinimo informaciją norite gauti. Spustelėkite jį dešiniuoju pelės klavišu ir pasirinkite Symbol Load Information (simbolių įkėlimo informacija). Atsivers dialogo langas, kuriame bus išvardyti visi katalogai, kuriuose buvo ieškoma asamblėjos .pdb failo. Patikrinkite, ar šis sąrašas atitinka tikrąją .pdb vietą. Įsitikinkite, kad nerastas senas failas.

Įprastuose projektuose asambliažą ir jos .pdb failą IDE visada turėjo nukopijuoti į tą patį aplanką kaip ir jūsų .exe. Jūsų projekto aplanke bin\Debug. Įsitikinkite, kad pašalinote vieną iš GAC, jei su juo žaidėte.

Komentarai (33)

Paprasčiausiai pabandykite kažką paprasto - galbūt jau bandėte. Dešiniuoju pelės klavišu spustelėkite sprendimą sprendimų tyrėjo programoje, spustelėkite "išvalyti sprendimą", taip ištrinami visi su sprendimu susiję kompiliuoti ir laikinieji failai.

Atlikite sprendimo atkūrimą ir vėl bandykite derinti.

Taip pat turėjau problemų su kelių projektų pertraukos taškais sprendime - kai kurie iš jų buvo sukompiliuoti kaip x86, kiti kaip x64.

Komentarai (8)

Kompilatoriaus nustatymuose reikia įjungti "Generuoti derinimo informaciją"

Komentarai (3)