Freigeben über


DkmGPUComputeThread Klasse

Definition

DkmGPUComputeThread stellt einen Computethread dar, der im GPU-Zielprozess ausgeführt wird.

public ref class DkmGPUComputeThread : Microsoft::VisualStudio::Debugger::DkmThread
[System.Runtime.InteropServices.Guid("40cbb26d-05f5-dc30-49f9-797b17f2ab9e")]
public class DkmGPUComputeThread : Microsoft.VisualStudio.Debugger.DkmThread
[<System.Runtime.InteropServices.Guid("40cbb26d-05f5-dc30-49f9-797b17f2ab9e")>]
type DkmGPUComputeThread = class
    inherit DkmThread
Public Class DkmGPUComputeThread
Inherits DkmThread
Vererbung
Vererbung
DkmGPUComputeThread
Attribute

Eigenschaften

ComputeKernel

DkmGPUComputeKernel stellt einen GPU-Computekern dar, der im Zielprozess ausgeführt wird.

Connection

Dies stellt eine Verbindung zwischen dem Monitor und der IDE dar. Es kann entweder eine lokale Verbindung sein, wenn der Monitor im selben Prozess wie die IDE ausgeführt wird, oder es kann sich um eine Remoteverbindung handelt. Im Überwachungsprozess besteht nur eine Verbindung.

(Geerbt von DkmThread)
GlobalThreadIndex

Eindeutig für den Kernelcomputethreadindex.

IsMainThread

True, wenn dies der Standard Thread dieses Prozesses ist. Der Standard Thread ist der erste Thread, der gestartet wird.

(Geerbt von DkmThread)
IsUnloaded

Gibt true zurück, wenn ein "unloaded"-Ereignis für dieses Objekt ausgelöst wurde (Beispiel: DkmThread::Unload wird aufgerufen) oder wenn das Objekt geschlossen wurde. Beachten Sie, dass bei der Überprüfung dieses status Vorsicht erforderlich ist, da die zurückgegebene status ohne Synchronisierung die Anweisung nach dem Lesen möglicherweise nicht mehr korrekt ist.

(Geerbt von DkmDataContainer)
NativeStartAddress

Falls verfügbar, ist dies die Win32-Startadresse dieses Threads (Wert, der an die CreateThread-API übergeben wird). Der Wert ist nicht immer verfügbar, z. B. ist er in Szenarien, in denen der Thread nach dem Anfügen des Debuggers oder in Minidumps gestartet wurde, in der Regel nicht verfügbar.

(Geerbt von DkmThread)
NativeThread

[Optional] Der native Thread, für den eine Ausnahme ausgelöst wird, um den Debugger zu benachrichtigen, dass ein GPU-Debugereignis verfügbar ist.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

Process

DkmProcess stellt einen Zielprozess dar, der debuggt wird. Der Debugger debugt Prozesse, sodass dies die grundlegende Einheit des Debuggens ist. Ein DkmProcess kann einen Systemprozess oder einen virtuellen Prozess wie Minidumps darstellen.

(Geerbt von DkmThread)
SystemInformation

Enthält Informationen zum Computersystem, unter dem dieser Thread ausgeführt wird. Wenn dieser Thread unter WOW (32-Bit-Emulation auf einem 64-Bit-Betriebssystem) ausgeführt wird, gelten diese Informationen für das 32-Bit-Subsystem und nicht für das 64-Bit-Subsystem.

(Geerbt von DkmThread)
SystemPart

[Optional] Beschreibt Merkmale des Threads, die für einen vollständigen Win32-Thread relevant sind. Derzeit ist dieser Wert erforderlich, und alle Threads verfügen über einen "System"-Block. In Zukunft kann dieser Wert NULL sein, wenn der DkmThread etwas anderes als einen vollständigen Win32-Thread darstellt.

(Geerbt von DkmThread)
TebAddress

Adresse innerhalb des Zielprozesses, in dem der Win32-Threadumgebungsblock gespeichert ist. Weitere Informationen finden Sie in der Dokumentation zur TEB-Struktur in MSDN.

(Geerbt von DkmThread)
UniqueId

Guid, die dieses Threadobjekt eindeutig identifiziert.

(Geerbt von DkmThread)

Methoden

BeginFuncEvalExecution(DkmFuncEvalFlags)

Diese Methode wird verwendet, um den Zielprozess fortzusetzen, sodass eine Funktionsauswertung erfolgen kann. Diese Funktion wird von einem Laufzeitdebugmonitor aufgerufen, nachdem eine Funktionsauswertung eingerichtet wurde, um den Zielprozess auszuführen. Der Laufzeitmonitor aktualisiert zunächst den Threadkontext, aktualisiert den erforderlichen Arbeitsspeicher im Zielprozess und richtet alle Erkennungen ein, die die Funktionsauswertung abgeschlossen haben.

Aufrufer dieser Methode MÜSSEN immer EndFuncEvalExecution aufrufen, bevor sie von dem Vorgang zurückkehren, der die Funktionsauswertung ausgelöst hat. Das Verhalten ist nicht definiert, wenn ein Aufrufer dies nicht tut.

Diese Methode wird im Basisdebugmonitor implementiert, indem zuerst der Zielprozess so aktualisiert wird, dass er sich im Funktionsauswertungsmodus befindet (DkmThread.OnBeginFuncEvalExecution), dann Threads anhalten und/oder fortsetzen, wie in den Funktionsauswertungsflags angegeben, und schließlich den Zielprozess fortsetzen.

Diese Methode kann von einem beliebigen Thread aufgerufen werden. OnBeginFuncEvalExecution muss jedoch vom Beenden des Ereignisthreads aufgerufen werden, sodass der Basisdebugmonitor möglicherweise als Threadwechsel im Rahmen der Implementierung dieser Methode ausgeführt werden muss. Der Basisdebugmonitor sollte erst nach dem Fortsetzen des Ziels von BeginFuncEvalExecution zurückkehren.

(Geerbt von DkmThread)
CanBeginFuncEvalExecution(DkmFuncEvalFlags)

CanBeginFuncEvalExecution kann aufgerufen werden, um zu verstehen, ob der aktuelle Status des Prozesses Funktionsauswertungen zulässt. Dadurch wird false zurückgegeben, z. B. wenn die Basis-DM "StoppingEventProcessingBegin", aber nicht "StoppingEventProcessingContinue" aufgerufen hat.

Standorteinschränkung: Die API muss von einer Monitor-Komponente (Komponentenebene < 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5) eingeführt.

(Geerbt von DkmThread)
Create(DkmProcess, UInt64, Boolean, Int64, DkmGPUComputeKernel, DkmThread, DkmThread+System, DkmDataItem)

Create ein neues DkmGPUComputeThread-Objekt instance.

Standorteinschränkung: Die API muss von einer Monitor-Komponente aufgerufen werden (Komponentenebene < 100.000).

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

Create(DkmProcess, UInt64, Boolean, Int64, DkmGPUComputeKernel, DkmThread+System, DkmDataItem)

Create ein neues DkmGPUComputeThread-Objekt instance.

Standorteinschränkung: Die API muss von einer Monitor-Komponente aufgerufen werden (Komponentenebene < 100.000).

CreateFrameRegisters(DkmUnwoundRegister[], UInt32)

Konvertieren Sie ein Array von DkmUnwoundRegisters in eine instance von DkmFrameRegisters, die eine sortierte DkmReadOnlyCollection von DkmUnwoundRegisters enthält.

(Geerbt von DkmThread)
CreateRegistersObject(Byte[], DkmUnwoundRegister[], DkmUnwoundRegister[])

Erstellt ein DkmFrameRegisters-Objekt aus dem angegebenen Bytearray, das eine Win32 CONTEXT-Struktur enthält.

(Geerbt von DkmThread)
EndFuncEvalExecution(DkmFuncEvalFlags)

EndFuncEvalExecution wird vom Debugmonitor der Laufzeit im Ereignisthread aufgerufen, um den Funktionsauswertungsmodus zu beenden. EndFuncEvalExecution aktualisiert den internen Zustand des DkmProcess-Objekts, um anzugeben, dass die Funktionsauswertung beendet wurde. Dadurch wird auch ein FuncEvalEnded-Ereignis gesendet, und der Prozess wird als beendet markiert.

Diese Methode kann aufgerufen werden (1), während eine "empfangene" Beendigungsereignisbenachrichtigung verarbeitet wird, oder ( 2) während der Verarbeitung eines nicht beendenden Ereignisses, z. B. thread exit, oder (3), während das Ziel noch angehalten wird, z. B. wenn die Einrichtung der Funktionsauswertung fehlgeschlagen ist.

(Geerbt von DkmThread)
GetContext(Int32, Byte[])

Rufen Sie den aktuellen Kontext (Registerwerte) eines Threads ab.

(Geerbt von DkmThread)
GetContext(Int32, Void*, Int32)

Rufen Sie den aktuellen Kontext (Registerwerte) eines Threads ab.

(Geerbt von DkmThread)
GetCurrentFrameInfo(UInt64, UInt64, UInt64)

GetCurrentFrameInfo wird verwendet, um die Framebasis und die Rückgabeadresse für den aktuellen Kontext des Threads abzurufen. Dies berücksichtigt die Auslassung von Framepointer und wenn der aktuelle Anweisungszeiger in einem Prolog, Epilog usw. ist... HINWEIS: In einigen Fällen wird dies falsch angezeigt, wenn der Frame den Frame zeiger ausgelassen hat und keine Symbole geladen sind.

Standorteinschränkung: Die API muss von einer Monitor-Komponente (Komponentenebene < 100.000) aufgerufen werden.

(Geerbt von DkmThread)
GetCurrentFuncEvalMode()

GetCurrentFuncEvalMode kann von Komponenten im Rahmen der Ereignisverarbeitung aufgerufen werden, um zu bestimmen, ob die Funktionsauswertung aktiviert ist. Diese Funktion kann nur im Rahmen der Ereignisverarbeitung aufgerufen werden.

(Geerbt von DkmThread)
GetCurrentLocation(DkmWorkList, DkmCompletionRoutine<DkmGetCurrentLocationAsyncResult>)

Gibt die Position eines Threads an, wie er im Threadfenster oder in der Dropdownliste auf der Symbolleiste des Debugspeicherorts angezeigt wird.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmThread)
GetCurrentRegisters(DkmUnwoundRegister[])

Gibt ein DkmFrameRegisters-Objekt zurück, das die aktuellen Registerwerte des Threads enthält.

(Geerbt von DkmThread)
GetDataItem<T>()

Ruft den instance von "T" ab, der diesem Container instance hinzugefügt wurde. Wenn dieser Container kein "T" enthält, gibt diese Funktion NULL zurück.

(Geerbt von DkmDataContainer)
GetDebuggerSuspensionCount()

Gibt die Gesamtzahl der Vom Debugger verursachten Unterbrechungen zurück (d. h. Aufrufe von DkmThread::Suspend ohne Einen Aufruf von DkmThread::Resume). Dies schließt alle Unterbrechungen außerhalb des Debuggers aus.

(Geerbt von DkmThread)
GetExtendedRegisters()

Ruft die erweiterten Register aus dem Threadkontext ab.

(Geerbt von DkmThread)
GetGroupId(Int32[], Int32)

Rufen Sie die Dimension des Threadblocks ab.

GetManagedThreadProperties(DkmWorkList, DkmCompletionRoutine<DkmGetManagedThreadPropertiesAsyncResult>)

Ruft die Eigenschaften eines verwalteten Threads ab.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

(Geerbt von DkmThread)
GetManagedThreadProperties(Int32)

Ruft die Eigenschaften eines verwalteten Threads ab.

(Geerbt von DkmThread)
GetMinidumpThreadInfo(DkmMinidumpThreadInfo)

Ruft threadzustandsinformationen ab, die im Minidump gespeichert sind.

Diese API wurde in Visual Studio 17 RTM (DkmApiVersion.VS17RTM) eingeführt.

(Geerbt von DkmThread)
GetRegisterDescriptions()

Rufen Sie die Liste aller Registerbeschreibungen aus dem GPU-Computethread ab.

GetStackAddressRange()

Ruft das Stapellimit bzw. die Stapelbasis des angegebenen Threads ab. Beachten Sie, dass sich dieser Wert im Laufe der Zeit ändern kann, z. B. bei Fasern.

(Geerbt von DkmThread)
GetSteppers()

GetSteppers listet die DkmStepper-Elemente dieses DkmThread-Objekts auf.

(Geerbt von DkmThread)
GetSuspensionCount(Boolean)

Gibt die aktuelle Anzahl der Unterbrechungen dieses Threads zurück.

(Geerbt von DkmThread)
GetSuspensionCount(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSuspensionCountAsyncResult>)

Gibt die aktuelle Anzahl der Unterbrechungen dieses Threads zurück.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

(Geerbt von DkmThread)
GetThisGroupDimension(Int32[], Int32)

Rufen Sie die Dimension des Threadblocks ab.

GetThisThreadDimension(Int32[], Int32)

Rufen Sie die Dimension des Threadblocks ab.

GetThreadCurrentWinRtErrorInfo()

GetThreadCurrentWinRtErrorInfo wird verwendet, um die Adresse des aktuellen IErrorInfo-Objekts für diesen Thread abzurufen.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

(Geerbt von DkmThread)
GetThreadId(Int32[], Int32)

Rufen Sie die Dimension des Threadblocks ab.

GetTlsValue(Int32)

Ruft den Wert im threadlokalen Speichers (TLS) des Debugthreads für den angegebenen TLS-Index ab. Jeder Thread eines Prozesses hat seinen eigenen Slot für jeden TLS-Index.

(Geerbt von DkmThread)
GetTopStackFrame()

Gibt den oberen Aufrufstapelrahmen für einen Thread zurück. Dieser Wert wird normalerweise nach dem ersten Stapellauf zwischengespeichert und beim Fortfahren gelöscht. Dies kann nur über dem Stapelanbieter im Clientprozess aufgerufen werden. Rufen Sie GetTopStackWalkFrame auf, um den obersten Frame im Serverprozess abzurufen.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmThread)
GetTopStackWalkFrame(DkmRuntimeInstance)

Gibt den oberen Stapelrahmen für einen Thread zurück. Dieser Frame kann aus einem Runtime-instance oder einem Monitorentladungsmodul stammen. Dies kann nur vom Serverprozess aufgerufen werden. Verwenden Sie GetTopStackFrame, um den obersten Frame im Clientprozess abzurufen.

Standorteinschränkung: Die API muss von einer Monitor-Komponente (Komponentenebene < 100.000) aufgerufen werden.

(Geerbt von DkmThread)
GetVolatileFlags()

Ruft flüchtige Flags für einen Thread ab. Geben Sie für instance zurück, wenn ein Thread ein geplanter Thread im Benutzermodus ist.

(Geerbt von DkmThread)
GetVolatileFlags(DkmWorkList, DkmCompletionRoutine<DkmGetVolatileFlagsAsyncResult>)

Ruft flüchtige Flags für einen Thread ab. Geben Sie für instance zurück, wenn ein Thread ein geplanter Thread im Benutzermodus ist.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

(Geerbt von DkmThread)
GetVolatileProperties(DkmWorkList, DkmCompletionRoutine<DkmGetVolatilePropertiesAsyncResult>)

Ruft die dynamischen Eigenschaften eines Threads ab.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

(Geerbt von DkmThread)
GetVolatileProperties(Int32, UInt64)

Rufen Sie die dynamischen Eigenschaften eines Threads ab.

(Geerbt von DkmThread)
IsStoppingEventQueued(Boolean)

Gibt an, ob der angegebene Thread ein Beendenereignis in der Warteschlange aufweist. Diese Informationen werden vom Ausführungs-Manager verwendet, um zu entscheiden, ob ein Thread verrutscht werden kann.

(Geerbt von DkmThread)
OnBeginFuncEvalExecution(DkmFuncEvalFlags)

OnBeginFuncEvalExecution wird vom Basisdebugmonitor für den Ereignisthread aufgerufen. Diese Methode wird als Teil der Implementierung von IDkmBaseFuncEvalService.BeginFuncEvalExecution aufgerufen, die aufgerufen wird, um den Prozess für eine Funktionsauswertung fortzusetzen. OnBeginFuncEvalExecution aktualisiert den internen Zustand des DkmProcess-Objekts, um anzugeben, dass eine Funktionsauswertung ausgeführt wird. Dadurch wird auch ein FuncEvalStarting-Ereignis gesendet, das den Prozess als ausgeführt markiert, sodass keine Vorgänge zulässig sind, die einen beendeten Prozess erfordern.

(Geerbt von DkmThread)
OnContinueExecution()

OnContinueExecution wird vom Basisdebugmonitor für den Ereignisthread aufgerufen. Diese Methode wird als Teil der Implementierung von IDkmContinueExecution.ContinueExecution aufgerufen, die von der IDE verwendet wird, um den Zielprozess fortzusetzen. Diese Methode wird vom Dispatcher verwendet, um entweder Stoppereignisse zu senden, die zuvor nicht verarbeitet werden konnten, oder um den internen Zustand des DkmProcess-Objekts zu aktualisieren, um anzugeben, dass der Zielprozess jetzt ausgeführt wird. Bevor der Prozess als ausgeführt markiert wird, sendet der Dispatcher ein Continue-Ereignis.

Ein Basisdebugmonitor sollte erwarten, dass er wiederholt aufgerufen wird, während er sich in dieser Methode befindet.

(Geerbt von DkmThread)
OnEmbeddedBreakpointHit(DkmInstructionAddress, Boolean)

Auslösen eines EmbeddedBreakpointHit-Ereignisses. Komponenten, die die Ereignissenkenschnittstelle implementieren, erhalten die Ereignisbenachrichtigung. Diese Methode queert das Ereignis, und das Steuerelement kehrt sofort zum Aufrufer zurück.

(Geerbt von DkmThread)
OnInterceptExceptionCompleted(UInt64)

Auslösen eines InterceptExceptionCompleted-Ereignisses. Komponenten, die die Ereignissenkenschnittstelle implementieren, erhalten die Ereignisbenachrichtigung. Diese Methode queert das Ereignis, und das Steuerelement kehrt sofort zum Aufrufer zurück.

(Geerbt von DkmThread)
OnThreadNameChange()

ThreadNameChange wird vom Dispatcher gesendet, wenn DkmThread::NameChange vom Monitor aufgerufen wird.

Diese API wurde in Visual Studio 14 RTM (DkmApiVersion.VS14RTM) eingeführt.

(Geerbt von DkmThread)
RaiseExecutionControlException(UInt32)

API, die von einer IDkmSingleStepCompleteReceived- oder IDkmRuntimeBreakpointReceived-Implementierung aufgerufen werden kann, um zu erzwingen, dass das Basis-DM die EXCEPTION_BREAKPOINT- oder EXCEPTION_SINGLE_STEP Ausnahme im Zielprozess auslöst, wenn die Ausführung fortgesetzt wird. Normalerweise wird der Breakpoint oder die Einzelschritt-Ausnahme implizit unterdrückt. Dadurch können die EXCEPTION_BREAKPOINT/EXCEPTION_SINGLE_STEP von Ausnahmehandlern innerhalb des Zielprozesses verarbeitet werden. Diese API schlägt fehl, wenn der Thread derzeit nicht an einem Schritt abgeschlossen oder an einem Breakpointereignis sitzt.

Standorteinschränkung: Die API muss von einer Monitor-Komponente aufgerufen werden (Komponentenebene < 100.000).

(Geerbt von DkmThread)
ReadMemory(UInt64, UInt64, DkmReadMemoryFlags, Byte[])

Lesen Sie den Arbeitsspeicher des GPU-Zielprozesses. Die Methode ist auf DkmGPUComputeThread, da sie den lokalen Threadspeicher, den freigegebenen Gruppenspeicher oder den globalen Arbeitsspeicher lesen kann.

ReadMemory(UInt64, UInt64, DkmReadMemoryFlags, Void*, Int32)

Lesen Sie den Arbeitsspeicher des GPU-Zielprozesses. Die Methode ist auf DkmGPUComputeThread, da sie den lokalen Threadspeicher, den freigegebenen Gruppenspeicher oder den globalen Arbeitsspeicher lesen kann.

RemoveDataItem<T>()

Entfernen Sie die instance von "T" aus diesem Container. Es ist in der Regel nicht erforderlich, diese Methode aufzurufen, da ein Datencontainer automatisch geleert wird, wenn das Objekt geschlossen wird.

(Geerbt von DkmDataContainer)
Resume(Boolean)

Setzen Sie diesen Thread fort.

(Geerbt von DkmThread)
SetContext(Byte[])

Aktualisieren Sie den Kontext (Registerwerte) eines Threads.

(Geerbt von DkmThread)
SetDataItem<T>(DkmDataCreationDisposition, T)

Platzieren Sie ein neues Element im Datencontainer.

(Geerbt von DkmDataContainer)
SetExtendedRegisterValue(Int32, ReadOnlyCollection<Byte>)

Legt den Wert des erweiterten Registers im Kontext des Threads fest.

(Geerbt von DkmThread)
SetRegisterValue(DkmGPURegisterDescription, ReadOnlyCollection<Byte>)

Legen Sie den Wert eines Registers im GPU-Computethread fest.

SetTlsValue(Int32, UInt64)

Speichert einen Wert im Tls-Slot (Lokaler Threadspeicher) des Debuggeethreads für den angegebenen TLS-Index. Jeder Thread eines Prozesses hat seinen eigenen Slot für jeden TLS-Index.

(Geerbt von DkmThread)
Suspend(Boolean)

Setzen Sie diesen Thread an.

(Geerbt von DkmThread)
Unload(Int32)

ThreadExit wird vom Dispatcher gesendet, wenn DkmThread::Unload vom Monitor aufgerufen wird.

Diese Methode kann nur von der Komponente aufgerufen werden, die das Objekt erstellt hat.

(Geerbt von DkmThread)
UpdateBufferTag(UInt32)

Überprüft, ob ein Tag für einen Puffer für diese Kernelausführung weitergeleitet wurde.

ValidateAddress(UInt64)

Überprüfen Sie die angegebene GPU-Speicheradresse.

WriteMemory(UInt64, UInt64, Byte[])

Schreibt Arbeitsspeicher in den GPU-Zielprozess. Die -Methode befindet sich auf DkmGPUComputeThread, da sie den lokalen Threadspeicher, den freigegebenen Gruppenspeicher oder den globalen Arbeitsspeicher schreiben kann.

Gilt für: