2012 Khronos Group
glGetDebugMessageLog 3G
glGetDebugMessageLog retrieve messages from the debug message log

## C Specification

GLuint `glGetDebugMessageLog` GLuint count GLsizei bufSize GLenum *sources Glenum *types GLuint *ids GLenum *severities GLsizei *lengths GLchar *messageLog

## Parameters

count

  The number of debug messages to retrieve from the log.

bufSize

  The size of the buffer whose address is given by messageLog.

sources

  The address of an array of variables to receive the sources of the retrieved messages.

types

  The address of an array of variables to receive the types of the retrieved messages.

ids

  The address of an array of unsigned integers to receive the ids of the retrieved messages.

severities

  The address of an array of variables to receive the severites of the retrieved messages.

lengths

  The address of an array of variables to receive the lengths of the received messages.

messageLog

  The address of an array of characters that will receive the messages.

## Description

`glGetDebugMessageLog` retrieves messages from the debug message log. A maximum of count messages are retrieved from the log. If sources is not NULL then the source of each message is written into up to count elements of the array. If types is not NULL then the type of each message is written into up to count elements of the array. If id is not NULL then the identifier of each message is written into up to count elements of the array. If severities is not NULL then the severity of each message is written into up to count elements of the array. If lengths is not NULL then the length of each message is written into up to count elements of the array.

messageLog specifies the address of a character array into which the debug messages will be written. Each message will be concatenated onto the array starting at the first element of messageLog. bufSize specifies the size of the array messageLog. If a message will not fit into the remaining space in messageLog then the function terminates and returns the number of messages written so far, which may be zero.

If `glGetDebugMessageLog` returns zero then no messages are present in the debug log, or there was not enough space in messageLog to retrieve the first message in the queue. If messageLog is NULL then no messages are written and the value of bufSize is ignored.

## Notes

Although debug messages may be enabled in a non-debug context, the quantity and detail of such messages may be substantially inferior to those in a debug context. In particular, a valid implementation of the debug message queue in a non-debug context may produce no messages at all.

## Errors

`GL_INVALID_VALUE` is generated if count or bufSize is negative.

## Associated Gets

glGet with argument `GL_DEBUG_LOGGED_MESSAGES`

glGet with argument `GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH`

glGet with argument `GL_MAX_DEBUG_MESSAGE_LENGTH`

glGet with argument `GL_MAX_DEBUG_LOGGED_MESSAGES`

## See Also

glDebugMessageInsert, glDebugMessageCallback, glDebugMessageControl.

## Copyright

Copyright 2012 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.