Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Teljes üzenetszöveg: A célfolyamat [code] kóddal lépett ki a 'function' függvény értékelése közben.
A .NET-objektumok állapotának könnyebb vizsgálata érdekében a hibakereső automatikusan kényszeríti a hibakeresési folyamatot más kódok (jellemzően tulajdonság getter metódusok és ToString függvények) futtatására. A legtöbb esetben ezek a függvények sikeresen befejeződnek, vagy kivételeket vetnek ki, amelyeket a hibakereső elkaphat. Vannak azonban olyan körülmények, amikor a kivételek nem ragadhatók meg, mert átlépik a kernel határait, felhasználói üzenetek pumpálását igénylik, vagy helyreállíthatatlanok. Ennek eredményeképpen egy tulajdonságbeolvasó vagy ToString metódus, amely olyan kódot hajt végre, amely explicit módon leállítja a folyamatot (például hívást ExitProcess()), vagy kezeletlen kivételt okoz, amelyet nem lehet elkapni (például StackOverflowException), leállítja a hibakeresési folyamatot és befejezi a hibakeresési munkamenetet. Ha ez a hibaüzenet jelenik meg, ez történt.
A probléma egyik gyakori oka, hogy amikor a hibakereső kiértékel egy önmagát hívó tulajdonságot, az verem túlcsordulási kivételt eredményezhet. A verem túlcsordulásának hiba nem állítható helyre, és a célfolyamat leáll.
A hiba kijavítása
Erre a problémára két lehetséges megoldás létezik.
1. megoldás: A hibakereső megakadályozása abban, hogy meghívja a getter metódust vagy a ToString metódust
A hibaüzenet annak a függvénynek a nevét jeleníti meg, amelyet a hibakereső megpróbált meghívni. A függvény nevével megpróbálhatja újraértékelni a függvényt az Azonnali ablakból a kiértékelés hibakereséséhez. A hibakeresés az Azonnali ablakból történő kiértékeléskor lehetséges, mert az Automatikus/Helyi/Figyelő ablak implicit kiértékeléseitől eltérően a hibakereső megszakítja a nem kezelt kivételeket.
Ha módosíthatja ezt a függvényt, megakadályozhatja, hogy a hibakereső meghívja a tulajdonságválasztót vagy ToString a metódust. Próbálkozzon az alábbiak egyikével:
Módosítsa a metódust más típusú kódra a tulajdonságbeolvasón vagy a ToString metóduson kívül, és a probléma megoldódott.
-vagy-
(For
ToString) Adjon meg egyDebuggerDisplayattribútumot a típuson, és a hibakereső más értéket értékelhet ki, mintToStringa .-vagy-
(A tulajdonságbeolvasó esetén) Helyezze az
[System.Diagnostics.DebuggerBrowsable(DebuggerBrowsableState.Never)]attribútumot a tulajdonságra. Ez akkor lehet hasznos, ha olyan metódussal rendelkezik, amely API-kompatibilitási okokból továbbra is tulajdonság marad, de valójában egy metódusnak kell lennie.
Ha nem tudja módosítani ezt a módszert, lehetséges, hogy egy másik utasítással megszakítja a célfolyamatot, és újrapróbálkozik a kiértékeléssel.
2. megoldás: Az összes implicit értékelés letiltása
Ha az előző megoldások nem oldják meg a problémát, letilthatja a tulajdonságértékelés engedélyezése funkciót.
Nyissa meg az Eszközök>beállításai panelt, és bontsa ki a Minden beállítás>hibakeresése általános szakaszt>. Törölje a jelet a Tulajdonságértékelés engedélyezése és más implicit függvényhívások jelölőnégyzetből.
Nyissa meg az Eszközök>beállításai párbeszédpanelt, és bontsa ki azÁltalános>. Törölje a Tulajdonságértékelés engedélyezése és más implicit függvényhívások jelölőnégyzet jelölését.
Ez a módosítás letiltja a legtöbb implicit függvény kiértékelését, és meg kell oldania a problémát.