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.
A Just-In-Time hibakeresés automatikusan képes elindítani a Visual Studio-t, ha egy Visual Studio-n kívül futó alkalmazás hibát észlel vagy összeomlik. A Just-In-Time hibakereséssel tesztelheti az alkalmazásokat a Visual Studión kívül, és megnyithatja a Visual Studiót, hogy probléma esetén megkezdje a hibakeresést.
AzIn-Time hibakeresés csak a Windows asztali alkalmazásokban működik. Nem működik univerzális Windows-alkalmazásokhoz vagy natív alkalmazásokban( például Visualizers) üzemeltetett felügyelt kódokhoz.
Borravaló
Ha meg szeretné akadályozni, hogy a Just-In-Time Hibakereső párbeszédpanel megjelenjen, de nincs telepítve a Visual Studio, olvassa el A Just-In-Time Hibakeresőletiltása című témakört. Ha egyszer már telepítette a Visual Studiót, előfordulhat, hogy le kell tiltania a Just-In-Time hibakeresést a Windows beállításjegyzékéből.
Just-In-Time hibakeresés engedélyezése vagy letiltása a Visual Studióban
Ha a Just-In-Time hibakeresővel dolgozik a Visual Studióban, a hibakereső konfigurációs beállításai az Eszközök>beállításai vagy a Hibakeresési>beállítások menüből érhetők el. A Just-In-Time hibakereső a telepítő egyes összetevőinek>hibakeresési és tesztelési szakaszában érhető el.
Jegyzet
A Just-In-Time hibakeresés engedélyezéséhez vagy letiltásához rendszergazdaként kell futtatnia a Visual Studiót. A Just-In-Time hibakeresés engedélyezése vagy letiltása beállításkulcsot állít be, és rendszergazdai jogosultságokra lehet szükség a kulcs módosításához. A Visual Studio rendszergazdaként való megnyitásához kattintson a jobb gombbal a Visual Studio alkalmazásra, és válassza a Futtatás rendszergazdakéntlehetőséget.
Just-In-Time hibakeresés engedélyezése vagy letiltása:
Az Eszközök>beállításai panelen bontsa ki a Minden beállítás>hibakeresése általános szakaszt>.
A jobb oldali panelen válassza a Just-In-Time hibakeresés konfigurálása hivatkozást.
A Visual Studio Hibakereső beállításai párbeszédpanelen konfigurálja a Just-In-Time hibakeresés engedélyezését az ilyen típusú kódbeállításokhoz . Válassza ki a just-In-Time hibakereséshez használni kívánt kódtípusokat: Felügyelt (.NET-keretrendszer) vagy natív.
Válassza OKlehetőséget.
Az Eszközök>beállításai párbeszédpanelen bontsa ki azIgény szerinti> szakaszt.
Az Just-In-Time hibakeresésének engedélyezése az ilyen típusú kód mezőben válassza ki a just-In-Time hibakereséshez használni kívánt kódtípusokat: Felügyelt, natívés/vagy szkript.
Válassza OKlehetőséget.
Ha engedélyezi a Just-In-Time hibakeresőt, de az nem nyílik meg, amikor egy alkalmazás összeomlik vagy hibákba ütközik, olvassa el A just-In-Time hibakeresésihibaelhárítása című témakört.
Just-In-Time hibakeresés letiltása a Windows beállításjegyzékéből
AIn-Time hibakeresés akkor is engedélyezve lehet, ha a Visual Studio már nincs telepítve a számítógépre. Ha a Visual Studio már nincs telepítve, letilthatja a Just-In-Time hibakeresést a Windows beállításjegyzékének szerkesztésével.
A Just-In-Time hibakeresés letiltása a beállításjegyzék szerkesztésével:
A Windows Start menüjében futtassa a Beállításszerkesztő (regedit.exe).
A Beállításszerkesztő ablakban keresse meg és törölje a következő beállításjegyzék-bejegyzéseket, ha léteznek:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Ha léteznek, törölje a következő beállításjegyzék-bejegyzéseket is:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Ügyeljen arra, hogy ne törölje vagy módosítsa a többi beállításkulcsot.
Zárja be a Beállításszerkesztő ablakot.
Engedélyezze a Just-In-Time hibakeresést a Windows-alkalmazás űrlapján
Alapértelmezés szerint a Windows Űrlap-alkalmazások rendelkeznek egy legfelső szintű kivételkezelővel, amely lehetővé teszi, hogy az alkalmazás továbbra is futjon, ha helyre tud állni. Ha egy Windows Forms-alkalmazás kezeletlen kivételt jelez, az alábbi párbeszédpanel jelenik meg:
Ha a Just-In-Time hibakeresést szeretné engedélyezni a windowsos űrlapok szokásos hibakezelése helyett, adja hozzá az alábbi beállításokat:
system.windows.formsA machine.config vagy a bin<app name>.exe.config fájl szakaszában állítsa azjitDebuggingértéket a következőretrue:<configuration> <system.windows.forms jitDebugging="true" /> </configuration>A C++ Windowsos űrlapalkalmazásban is állítsa
DebuggableAttribute-rőltrue-re egy .config fájlban vagy a kódban. Ha /Zi-gyel fordít, és nincs megadva /Og, akkor a fordító beállítja ezt az attribútumot önnek. Ha azonban nem optimalizált kiadási buildet szeretne hibakeresésre használni, aDebuggableAttributeúgy kell beállítania, hogy hozzáadja a következő sort az alkalmazás AssemblyInfo.cpp fájljához:[assembly:System::Diagnostics::DebuggableAttribute(true, true)];További információ: DebuggableAttribute.
Just-In-Time hibakeresés használata
Ez a példa végigvezeti a Just-In-Time hibakeresésen, amikor egy alkalmazás hibát jelez.
Az alábbi lépések végrehajtásához telepítve kell lennie a Visual Studio-nak. Ha nem rendelkezik Visual Studióval, letöltheti az ingyenes Visual Studio Community Edition.
Győződjön meg arról, hogy a Just-In-Time hibakeresés engedélyezve van, ha az Eszközök> csoportban konfigurálja a Just-In-Time hibakeresést az ilyen típusú kódhoz.
Ebben a példában egy C# konzolalkalmazást készítünk a Visual Studio-ban, amely NullReferenceException-t dob.
A Visual Studióban hozzon létre egy C#-konzolalkalmazást (File>New>Project>Visual C#>Console Application) ThrowsNullExceptionnéven. A projektek Visual Studióban való létrehozásáról további információt a Útmutató: Egyszerű alkalmazás létrehozásacímű témakörben talál.
Amikor megnyílik a projekt a Visual Studióban, nyissa meg a Program.cs fájlt. Cserélje le az alapértelmezett kódot, beleértve a Main() metódust is, ha van ilyen, cserélje le a következő kódra. Az alábbi kód egy sort nyomtat ki a konzolra, majd nullreferenceException értéket ad:
Console.WriteLine("we will now throw a NullReferenceException");
throw new NullReferenceException("this is the exception thrown by the console app");
static void Main(string[] args)
{
Console.WriteLine("we will now throw a NullReferenceException");
throw new NullReferenceException("this is the exception thrown by the console app");
}
A megoldás létrehozásához válassza a Hibakeresési (alapértelmezett) vagy Kiadási konfigurációt, majd válassza a Build>Rebuild Solutionlehetőséget.
A teljes hibakeresési folyamathoz válassza a hibakeresési konfigurációt.
Ha a kiadási konfigurációt választja, ki kell kapcsolnia a Just My Code szolgáltatást ahhoz, hogy ez az eljárás működjön.
Az Eszközök>beállításai panelen bontsa ki az Összes beállítás>hibakeresése>általános szakaszt, és törölje a jelet a Csak saját kód engedélyezése jelölőnégyzetből.
Az Eszközök>beállításai párbeszédpanelen bontsa ki azÁltalános> szakaszt, és törölje a jelet a Csak saját kód engedélyezése jelölőnégyzetből.
Ha törli ezt a jelölőnégyzetet, a figyelmeztetés, ha a hibakeresés indításakor (csak felügyelt) nincs felhasználói kód opció automatikusan letiltásra kerül.
További információ a buildkonfigurációkról: A buildkonfigurációk ismertetése.
Nyissa meg a beépített alkalmazás ThrowsNullException.exe a C# projektmappában (...\ThrowsNullException\ThrowsNullException\bin\Debug vagy ...\ThrowsNullException\ThrowsNullException\bin\Release), vagy futtassa a végrehajtható fájlt egy parancssorból.
A következő parancsablaknak kell megjelennie:
Ekkor megnyílik a Choose Just-In-Time Hibakereső párbeszédpanel.
Az Elérhető hibakeresők területen válassza az <, ha még nincs kiválasztva.
Jegyzet
Ha nem látja az Igény szerinti hibakereső párbeszédpanelt, előfordulhat, hogy hozzá kell adnia a beállításkulcsokat. Lásd : Just-In-Time hibakeresés nem indul el
Válassza OKlehetőséget.
A ThrowsNullException projekt a Visual Studio új példányában nyílik meg, és a végrehajtás a kivételt okozó sorban leállt:
Ezen a ponton megkezdheti a hibakeresést. Ha egy valódi alkalmazást hibakeres, meg kell tudnia, miért dobja a kód a kivételt.
Vigyázat
Ha az alkalmazás nem megbízható kódot tartalmaz, megjelenik egy biztonsági figyelmeztetési párbeszédpanel, amely lehetővé teszi, hogy eldöntse, folytatja-e a hibakeresést. A hibakeresés folytatása előtt döntse el, hogy megbízik-e a kódban. Maga írta a kódot? Ha az alkalmazás távoli gépen fut, felismeri a folyamat nevét? Ha az alkalmazás helyileg fut, fontolja meg a számítógépen futó rosszindulatú kódok lehetőségét. Ha úgy dönt, hogy a kód megbízható, válassza OKlehetőséget. Ellenkező esetben válassza a Mégselehetőséget.
Just–In-Time hibakeresés hibaelhárítása
Just-In-Time hibakeresés nem indul el
Ha a Just-In-TimeIn-Time hibakeresés nem indul el, amikor egy alkalmazás összeomlik vagy leáll, annak ellenére, hogy engedélyezve van a Visual Studióban:
Egy ismert Windows-probléma okozhatja a Just-In-Time hibakereső sikertelen voltát.
A javítás az, hogy egy DWORD értéket adunk hozzá Auto névvel, Értékadatként1-et beállítva, a következő beállításkulcsokhoz:
(.NET) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
(.NET-keretrendszer) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
Előfordulhat, hogy a Windows hibajelentés átveszi a hibakezelést a számítógépen.
A probléma megoldásához használja a Beállításszerkesztőt, hogy hozzáadjon egy DWORD értéketDisabled, amelynek értékadata1legyen, a következő beállításkulcsokhoz:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting
(32 bites alkalmazásokhoz 64 bites gépeken) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting
További információ: . WER-beállítások.
Hibaüzenetek
A Just-In-Time hibakeresés során a következő hibaüzenetek jelenhetnek meg:
Nem lehet kapcsolódni az összeomlott folyamathoz. A megadott program nem Windows vagy MS-DOS program.
A hibakereső egy másik felhasználó alatt futó folyamathoz próbált csatlakozni.
A probléma megkerüléséhez a Visual Studióban nyissa meg a Hibakeresési>Csatolás egy folyamathoz menüpontot (vagy nyomja le a Ctrl + Alt + Pbillentyűkombinációt), és keresse meg a folyamatot, amelyet hibakeresni szeretne az Elérhető folyamatok listában. Ha nem tudja a folyamat nevét, keresse meg a folyamatazonosítót a Visual Studio Just-In-Time Hibakereső párbeszédpanelen. Válassza ki a folyamatot az Elérhető folyamatok listában, és válassza a Csatoláslehetőséget. Válassza a Nincs lehetőséget a Just-In-Time hibakereső párbeszédpanel bezárásához.
Hibakereső nem indítható el, mert nincs bejelentkezett felhasználó.
Nincs bejelentkezett felhasználó a konzolra, így nincs felhasználói munkamenet a Just-In-Time hibakeresési párbeszédpanel megjelenítéséhez.
A probléma megoldásához jelentkezzen be a gépre.
osztály nincs regisztrálva.
A hibakereső olyan COM-osztályt próbált létrehozni, amely nincs regisztrálva, valószínűleg telepítési probléma miatt.
A probléma megoldásához használja a Visual Studio Installert a Visual Studio telepítésének újratelepítéséhez vagy javításához.
Egy másik hibakereső regisztrálta magát just-In-Time hibakeresőként. A javításhoz engedélyezze a Just-In-Time hibakeresést, vagy futtassa a Visual Studio javítását.
Ez az üzenet akkor jelenik meg, ha van egy másik hibakeresője, esetleg a Visual Studio hibakeresőjének egy régebbi verziója, amely Just-In-Time hibakeresőként van beállítva.
Just-In-Time hibakeresés regisztrációs hibáit észleltük. A javításhoz engedélyezze a Just-In-Time hibakeresést, vagy futtassa a Visual Studio javítását.
Ha a fenti figyelmeztetések valamelyikét látja, a Just-In-Time Visual Studio hibakereséséhez rendszergazdai jogosultságokra van szükség, amíg meg nem oldja a problémát. Ha ezen feltételek mellett nem rendszergazdaként próbálja engedélyezni a funkciót, a következő hibaüzenet jelenik meg:
Hozzáférés megtagadva. Kérje meg a rendszergazdát, hogy engedélyezze a Just-In-Time hibakeresést, vagy javítsa ki a Visual Studio telepítését.