ICorDebugModule2::ApplyChanges-metod
Tillämpar ändringarna i metadata och ändringarna i CIL-koden (Common Intermediate Language) på den pågående processen.
Syntax
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Parametrar
cbMetadata
[i] Storlek i byte för deltametadata.
pbMetadata
[i] Buffert som innehåller deltametadata. Buffertens adress returneras från metoden IMetaDataEmit2::SaveDeltaToMemory .
De relativa virtuella adresserna (RVA) i metadata bör vara i förhållande till början av CIL-koden.
cbIL
[i] Storlek, i byte, på delta CIL-koden.
pbIL
[i] Buffert som innehåller den uppdaterade CIL-koden.
Kommentarer
Parametern pbMetadata
är i ett särskilt deltametadataformat (som utdata från IMetaDataEmit2::SaveDeltaToMemory). pbMetadata
tar tidigare metadata som bas och beskriver enskilda ändringar som ska tillämpas på den basen.
Parametern pbIL[
] innehåller däremot den nya CIL för den uppdaterade metoden och är avsedd att helt ersätta den tidigare CIL:n för den metoden
När delta-CIL och metadata har skapats i felsökarens minne anropar ApplyChanges
felsökningsprogrammet för att skicka ändringarna till CLR (Common Language Runtime). Körningen uppdaterar sina metadatatabeller, placerar den nya CIL i processen och konfigurerar en JIT-kompilering (just-in-time) av den nya CIL. När ändringarna har tillämpats bör felsökaren anropa IMetaDataEmit2::ResetENCLog för att förbereda för nästa redigeringssession. Felsökningsprogrammet kan sedan fortsätta processen.
När felsökaren anropar ApplyChanges
en modul som har deltametadata bör den även anropa IMetaDataEmit::ApplyEditAndContinue med samma deltametadata på alla dess kopior av modulens metadata, förutom den kopia som används för att generera ändringarna. Om en kopia av metadata på något sätt blir osynkroniserad med faktiska metadata kan felsökaren alltid kasta bort kopian och hämta en ny kopia.
ApplyChanges
Om metoden misslyckas är felsökningssessionen i ett ogiltigt tillstånd och måste startas om.
Krav
Plattformar: Se Systemkrav.
Rubrik: CorDebug.idl, CorDebug.h
Bibliotek: CorGuids.lib
.NET Framework-versioner: Tillgänglig sedan 2.0