MarkProfile
Метод MarkProfile вставляет метку профиля в VSP-файл.Чтобы вставить метку и комментарий, необходимо включить профилирование для потока, содержащего функцию MarkProfile.
PROFILE_COMMAND_STATUS PROFILERAPI MarkProfile( long lMarker );
Параметры
lMarker
Вставляемый токен.токен должен быть больше или равен нулю (0).
Значение свойства или возвращаемое значение
Функция указывает на успешное выполнение или сбой посредством перечисления PROFILE_COMMAND_STATUS.Ниже перечислены возможные возвращаемые значения.
Enumerator |
Описание |
---|---|
MARK_ERROR_MARKER_RESERVED |
Параметр меньше или равен нулю.Эти значения зарезервированы.Метка и комментарий не записываются. |
MARK_ERROR_MODE_NEVER |
При вызове функции для режима профилирования было задано значение NEVER.Метка и комментарий не записываются. |
MARK_ERROR_MODE_OFF |
При вызове функции для режима профилирования было задано значение OFF.Метка и комментарий не записываются. |
MARK_ERROR_NO_SUPPORT |
В данном контексте поддержка меток отсутствует.Метка и комментарий не записываются. |
MARK_ERROR_OUTOFMEMORY |
Недостаточно памяти для записи события.Метка и комментарий не записываются. |
MARK_TEXTTOOLONG |
Длина строки превышает максимальный предел (256 знаков).Строка комментария усекается, а метка и комментарий записываются. |
MARK_OK |
При успешном выполнении возвращается значение MARK_OK. |
Заметки
Если профилируется поток, содержащий функцию MarkProfile, значение метки вставляется в VSP-файл при каждом выполнении кода.Функцию MarkProfile можно вызывать несколько раз.
Метки профилирования имеют глобальную область видимости.Например, метка профиля, вставленная в поток, может использоваться для отметки начала и конца сегмента данных в любом потоке, определенном в .VSP-файле.
Состояние профилирования для потока, который содержит функцию метки профиля, должно быть включено, если метки и комментарии вставлены при помощи команды Mark или функций API (CommentMarkAtProfile, CommentMarkProfile или MarkProfile).
![]() |
---|
Метод MarkProfile следует использовать только при профилировании с инструментированием. |
Эквивалент в .NET Framework
Microsoft.VisualStudio.Profiler.dll
Сведения о функции
Заголовок: объявлен в файле VSPerf.h.
Импортируемая библиотека: VSPerf.lib
Пример
В следующем коде демонстрируется использование функции MarkProfile.
void ExerciseMarkProfile()
{
// Declare and initialize variables to pass to
// MarkProfile. The values of these parameters
// are assigned based on the needs of the code;
// and for the sake of simplicity in this example,
// the variables are assigned arbitrary values.
int markId = 03;
// Declare enumeration to hold return value of
// call to MarkProfile.
PROFILE_COMMAND_STATUS markResult;
// Variables used to print output.
HRESULT hResult;
TCHAR tchBuffer[256];
markResult = MarkProfile(markId);
// Format and print result.
LPCTSTR pszFormat = TEXT("%s %d.\0");
TCHAR* pszTxt = TEXT("MarkProfile returned");
hResult = StringCchPrintf(tchBuffer, 256, pszFormat,
pszTxt, markResult);
#ifdef DEBUG
OutputDebugString(tchBuffer);
#endif
}
См. также
Другие ресурсы
Справочник по API-интерфейсам профилировщика Visual Studio (машинный код)