DebuggableAttribute.DebuggingModes Enumeráció
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az igény szerinti (JIT) fordító hibakeresési módját adja meg.
Ez a felsorolás támogatja a tagértékek bitenkénti kombinációját.
public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes =
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes =
Public Enum DebuggableAttribute.DebuggingModes
- Öröklődés
- Attribútumok
Mezők
| Name | Érték | Description |
|---|---|---|
| None | 0 | A .NET Framework 2.0-s verziójától kezdve a JIT nyomkövetési információi mindig létrejönnek, és ez a jelző ugyanolyan hatással van, mint Default, azzal a kivétellel, hogy a IsJITTrackingEnabled tulajdonságot Vegye figyelembe, hogy a DisableOptimizations jelölővel ellentétben a jelölő nem használható a None JIT-optimalizálások letiltására. |
| Default | 1 | Utasítja a just-in-time (JIT) fordítót, hogy használja az alapértelmezett viselkedését, amely magában foglalja az optimalizálás engedélyezését, a szerkesztés és a folytatás támogatásának letiltását, valamint a szimbólumtárolók szekvenciapontjainak használatát, ha vannak ilyenek. A .NET Framework 2.0-s verziójától kezdve a JIT nyomkövetési információi, a metóduson belüli natív kódeltoláshoz Microsoft köztes nyelv (MSIL) eltolása mindig létrejön. |
| IgnoreSymbolStoreSequencePoints | 2 | A programadatbázis (PDB) szekvenciapontjai nem az implicit MSIL-szekvenciapontokat használják. A szimbolikus információk általában minden forrássorhoz legalább egy Microsoft köztes nyelv (MSIL) eltolását tartalmazzák. Ha a just-in-time (JIT) fordító egy metódus fordítására készül, a profilkészítési szolgáltatásoktól kéri a megőrizendő MSIL-eltolások listáját. Ezeket az MSIL-eltolásokat szekvenciapontoknak nevezzük. |
| EnableEditAndContinue | 4 | A szerkesztés és a folytatás engedélyezése. A szerkesztéssel és a folytatással módosíthatja a forráskódot, amíg a program szünet módban van. A szerkesztés és a folytatás lehetősége a fordítótól függ. |
| DisableOptimizations | 256 | Tiltsa le a fordító által végzett optimalizálást, hogy a kimeneti fájl kisebb, gyorsabb és hatékonyabb legyen. Az optimalizálás a kimeneti fájlban kód átrendeződést eredményez, ami megnehezítheti a hibakeresést. Az optimalizálást általában le kell tiltani a hibakeresés során. A 2.0-s vagy újabb verziókban kombinálja ezt az értéket az Alapértelmezett (Alapértelmezett | DisableOptimizations) a JIT-nyomkövetés engedélyezéséhez és az optimalizálás letiltásához. |
Megjegyzések
Az DebuggableAttribute.DebuggingModes enumerálás azt határozza meg, hogy a futtatókörnyezet hogyan követi nyomon a hibakereső számára fontos információkat a kódgenerálás során. Ezek az információk segítenek a hibakeresőnek gazdag hibakeresési élményt nyújtani. Az .NET Framework 1.1-es verziójával ellentétben a 2.0-s vagy újabb verziók nem teszik lehetővé a nyomon követés kikapcsolását az igény szerinti (JIT) fordítóval. A JIT-nyomkövetés mindig engedélyezve van a hibakeresési fájlokhoz. A 2.0-s és újabb verziókban az enumerálási értékek a következő hatással vannak.
| Hibakeresési mód | Result |
|---|---|
| None | Nyomon követés, JIT-optimalizálások engedélyezve |
| Alapértelmezett | Nyomon követés, JIT-optimalizálások engedélyezve |
| DisableOptimizations | Nyomon követés, JIT-optimalizálások engedélyezve |
| Alapértelmezett | DisableOptimizations | Nyomon követés bekapcsolva, a JIT-optimalizálás le van tiltva |
A szekvenciapontok a Microsoft köztes nyelv (MSIL) kód azon helyeinek jelzésére szolgálnak, amelyekre a hibakereső felhasználó várhatóan egyedi módon hivatkozhat, például töréspont beállítására. A JIT fordító biztosítja, hogy ne fordítsa le az MSIL-t két különböző szekvenciaponton egyetlen natív utasításba. Alapértelmezés szerint a JIT-fordító megvizsgálja a programadatbázis (PDB) fájljában található szimbólumtárolót a további szekvenciapontok listájához. A PDB-fájl betöltéséhez azonban elérhetővé kell tenni a fájlt, és negatív hatással van a teljesítményre. A 2.0-s verziótól kezdve a fordítók "implicit szekvenciapontokat" bocsáthatnak ki az MSIL-kódstreamben az MSIL "nop" utasítások használatával. Az ilyen fordítóknak úgy kell beállítaniuk a IgnoreSymbolStoreSequencePoints jelzőt, hogy a közös nyelvi futtatókörnyezet ne töltse be a PDB-fájlt.
Note
Ezt az enumerálást elsősorban a nyelvfejlesztők használják. Általában nem használják alkalmazásfejlesztéshez. A fejlesztői környezetek fordítóparaméterek, például DebuggableAttribute.DebuggingModes és /optimize alapján használhatók.