debug_event 함수 설명
debug_event
함수는 게임이 디버그 모드에서 실행될 때 디버거의 그래프 뷰에 표시되는 사용자 정의 디버그 이벤트를 생성합니다. 디버그 모드가 아닐 때 메시지를 표시하려면 show_debug_message
를 사용해야 합니다. 이 함수는 Visual Studio와 같은 외부 애플리케이션을 사용하여 디버깅을 수행하는 데 도움이 되는 다섯 개의 예약된 문자열을 사용할 수 있습니다.
예약된 문자열
문자열 | 설명 |
---|---|
OutputDebugOn | Windows 타겟에 대해 OutputDebugString 호출을 활성화합니다. 모든 디버그 출력이 Visual Studio 또는 제3자 앱에서 볼 수 있습니다. |
OutputDebugOff | 위에서 설명한 동작을 비활성화합니다. |
BreakOnError | Windows YYC 빌드 전용 옵션으로, 런타임에서 오류를 감지할 경우 일반적인 코드 오류 화면을 표시하지 않고 계속 진행합니다. |
ResourceCounts | 현재 활성화된 모든 리소스를 나열하며, 구조체를 반환합니다. |
DumpMemory | 현재 메모리 사용량에 대한 정보를 제공합니다. 또한 구조체를 반환합니다. |
ResourceCounts
debug_event
를 "ResourceCounts" 인수와 함께 호출하면 게임의 모든 활성 리소스에 대한 정보를 포함하는 구조체를 반환합니다. 각 리소스는 다음 세 가지 속성으로 표현됩니다:
속성 | 설명 |
---|---|
<resource>Count |
함수가 호출될 때 존재하는 이 유형의 리소스 수 |
<resource>MaxIndex |
리소스에 대해 존재하는 최대 유효 정수 인덱스 |
<resource>ArrayAllocatedSize |
주어진 리소스 유형에 대해 생성된 최대 리소스 수 |
구조체의 구성원은 다음과 같습니다:
- listCount
- listMaxIndex
- listArrayAllocatedSize
- mapCount
- mapMaxIndex
- mapArrayAllocatedSize
- queueCount
- queueMaxIndex
- queueArrayAllocatedSize
- gridCount
- gridMaxIndex
- gridArrayAllocatedSize
- priorityCount
- priorityMaxIndex
- priorityArrayAllocatedSize
- stackCount
- stackMaxIndex
- stackArrayAllocatedSize
- mpGridCount
- mpGridMaxIndex
- mpGridArrayAllocatedSize
- bufferCount
- bufferMaxIndex
- bufferArrayAllocatedSize
- surfaceCount
- audioEmitterCount
- audioEmitterMaxIndex
- audioEmitterArrayAllocatedSize
- partSystemCount
- partSystemMaxIndex
- partSystemArrayAllocatedSize
- partEmitterCount
- partTypeCount
- partTypeMaxIndex
- partTypeArrayAllocatedSize
- timeSourceCount
- spriteCount
- pathCount
- fontCount
- roomCount
- timelineCount
DumpMemory
debug_event
를 "DumpMemory" 인수와 함께 호출하면 게임의 메모리 사용량에 대한 정보를 포함하는 구조체를 반환합니다. 구조체의 구성원은 플랫폼에 따라 다르지만, 모든 플랫폼에서 최소한 다음 값을 포함합니다 (바이트 단위):
속성 | 설명 |
---|---|
totalUsed | 현재 게임이 사용 중인 메모리 양 |
free | 할당된 메모리 중 사용되지 않는 양 |
peakUsage | 게임이 시작된 이후 사용한 최대 메모리 양 |
이 값들은 각 플랫폼에서 측정되는 방식이 다르며, 이 함수가 제어하는 메모리만 표시됩니다.
함수 구문
debug_event(string, [silent]);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
string | String | 사용할 사용자 정의 디버그 이벤트 문자열 또는 다섯 개의 예약된 문자열 중 하나. |
silent | Boolean | 이 매개변수는 함수가 결과를 구조체로 조용히 반환하도록 하며, 기본값은 false입니다. |
반환값
구조체 (일부 옵션에 대해) 또는 N/A
활용 예제
예제 1: 사용자 정의 문자열
if (!surface_exists(global.EffectsSurface)){
debug_event("Recreating Effects Surface");
global.EffectsSurface = surface_create(room_width, room_height);
}
위 코드는 서피스가 존재하는지 확인하고, 존재하지 않으면 디버그 이벤트를 트리거하여 서피스를 재생성합니다.
예제 2: 예약된 문자열
var _counts = debug_event("ResourceCounts");
위 코드는 "ResourceCounts" 메시지로 디버그 이벤트를 트리거합니다. 이 예약된 문자열은 리소스 수를 콘솔에 출력하고 구조체로 반환됩니다. 콘솔 출력을 억제하려면 두 번째 매개변수를 true로 설정합니다.
var _counts = debug_event("ResourceCounts", true);