Freigeben über


ICorProfilerInfo::SetILInstrumentedCodeMap-Methode

Aktualisiert: November 2007

Legt mit den angegebenen MSIL-Zuordnungseinträgen (Microsoft Intermediate Language) eine Codezuordnung für die angegebene Funktion fest.

Tipp

Der Aufruf von SetILInstrumentedCodeMap für eine FunctionID, die eine generische Funktion in einer bestimmten Anwendungsdomäne darstellt, betrifft in .NET Framework, Version 2.0, alle Instanzen dieser Funktion in der Anwendungsdomäne.

HRESULT SetILInstrumentedCodeMap(
    [in]  FunctionID functionId,
    [in]  BOOL       fStartJit,
    [in]  ULONG      cILMapEntries,
    [in, size_is(cILMapEntries)] COR_IL_MAP rgILMapEntries[]);

Parameter

  • functionId
    [in] Die ID der Funktion, für die die Codezuordnung festgelegt werden soll.

  • fStartJit
    [in] Ein boolescher Wert, der angibt, ob der Aufruf der SetILInstrumentedCodeMap-Methode der erste Aufruf für eine bestimmte FunctionID ist. Legen Sie fStartJit auf true fest, wenn Sie SetILInstrumentedCodeMap für eine angegebene FunctionID zum ersten Mal aufrufen, anschließend auf false.

  • cILMapEntries
    [in] Die Anzahl der Elemente im cILMapEntries-Array.

  • rgILMapEntries
    [in] Ein Array von COR_IL_MAP-Strukturen, von denen jede einen MSIL-Offset angibt.

Hinweise

Ein Profiler fügt häufig Anweisungen in den Quellcode einer Methode ein, um diese Methode zu instrumentieren (zum Beispiel, um eine Benachrichtigung auszugeben, wenn eine bestimmte Quellcodezeile erreicht wurde). Mit SetILInstrumentedCodeMap kann ein Profiler die ursprünglichen MSIL-Anweisungen den neuen Speicherorten zuordnen. Mit der ICorProfilerInfo::GetILToNativeMapping-Methode kann der Profiler den ursprünglichen MSIL-Offset für einen bestimmten systemeigenen Offset abrufen.

Der Debugger geht davon aus, dass jeder alte Offset auf einen MSIL-Offset im ursprünglichen, unveränderten MSIL-Code verweist, und dass jeder neue Offset auf den MSIL-Offset im neuen, instrumentierten Code verweist. Die Zuordnung sollte in aufsteigender Reihenfolge sortiert werden. Damit die schrittweise Ausführung richtig funktioniert, beachten Sie diese Richtlinien:

  • Ordnen Sie keinen instrumentierten MSIL-Code neu an.

  • Entfernen Sie den ursprünglichen MSIL-Code nicht.

  • Die Zuordnung muss Einträge für alle Sequenzpunkte von der Programmdatenbankdatei (PDB) einschließen. Die Zuordnung interpoliert keine fehlenden Einträge. Bei der folgenden Zuordnung gilt:

    (0 alt, 0 neu)

    (5 alt, 10 neu)

    (9 alt, 20 neu)

    • Ein alter Offset von 0, 1, 2, 3 oder 4 wird dem neuen Offset 0 zugeordnet.

    • Ein alter Offset von 5, 6, 7 oder 8 wird dem neuen Offset 10 zugeordnet.

    • Ein alter Offset von 9 oder höher wird dem neuem Offset 20 zugeordnet.

    • Ein neuer Offset von 0, 1, 2, 3, 4, 5, 6, 7, 8 oder 9 wird dem alten Offset 0 zugeordnet.

    • Ein neuer Offset von 10, 11, 12, 13, 14, 15, 16, 17, 18 oder 19 wird dem alten Offset 5 zugeordnet.

    • Ein neuer Offset von 20 oder höher wird dem alten Offset 9 zugeordnet.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorProf.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1

Siehe auch

Referenz

ICorProfilerInfo