Roblox에서 코드를 디버깅하기 위한 몇 가지 기본 기능을 제공합니다.루아에서 기본적으로 찾을 수 있는 라이브러리 debug와는 달리, 이 버전은 크게 샌드박스화되었습니다.
요약
함수
현재 함수 호출 스택을 설명하는 정의되지 않은 형식의 문자열을 반환합니다.
현재 함수 호출 스택을 설명하는 정의되지 않은 형식의 문자열을 반환합니다.
현재 스택의 전체를 가로지르고 대상 수준 세부 정보의 호출 스택을 포함하는 문자열을 반환합니다.
현재 스택의 전체를 가로지르고 대상 함수 세부 정보의 호출 스택을 포함하는 문자열을 반환합니다.
대상 스레드 전체를 가로지르고 대상 레벨 세부 정보의 호출 스택을 포함하는 문자열을 반환합니다.
레이블에 대한 프로파일링을 시작합니다.
가장 최근에 열린 레이블에 대한 프로파일링을 중지합니다. debug.profilebegin()
현재 스레드의 활성 메모리 카테고리 이름을 반환합니다.
현재 스레드의 메모리 카테고리에 사용자 지정 태그를 할당합니다.
debug.setmemorycategory()에 의해 할당된 태그를 자동으로 할당된 값(일반적으로 스크립트 이름)으로 재설정합니다.
개별 함수와 스크립트의 네이티브 코드 크기 표를 표시합니다.
함수
traceback
현재 함수 호출 스택의 추적을 문자열로 반환하여 이 지점까지 호출된 함수의 설명을 말합니다.디버깅 중에는 오류 스택 추적처럼 동작하지만 스크립트 실행을 중지하지 않습니다.
level 매개 변수는 고려할 호출 스택 레벨을 지정하며, 1는 자체 호출인 debug.traceback()의 호출, 2는 함수 호출 debug.traceback()의 호출 등을 지정합니다.아래의 코드 샘플에서 순차 함수 호출의 예를 참조하십시오.
이 함수는 종종 정확하지 않은 결과(원래 소스 코드와 비교)를 반환하고 반환된 추적 형식이 언제든지 변경될 수 있다는 점에 유의하십시오.스크립트 이름이나 줄 번호와 같은 특정 정보의 반환 값을 분석하지 말아야 합니다( 하지 않아야 ).
다음 예제에는 순차적 함수 호출이 포함되어 있습니다; fnB() 가 호출되고, 그 다음 fnA() 가 호출되며, 그 다음 debug.traceback() 가 호출됩니다.
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- 추적 시작을 위해 fnB() 함수 호출
fnB()
매개 변수
반환
현재 함수 호출 스택의 추적.
traceback
현재 함수 호출 스택의 추적을 문자열로 반환하여 이 지점까지 호출된 함수의 설명을 말합니다.디버깅 중에는 오류 스택 추적처럼 동작하지만 스크립트 실행을 중지하지 않습니다.
level 매개 변수는 고려할 호출 스택 레벨을 지정하며, 1는 자체 호출인 debug.traceback()의 호출, 2는 함수 호출 debug.traceback()의 호출 등을 지정합니다.아래의 코드 샘플에서 순차 함수 호출의 예를 참조하십시오.
이 함수는 종종 정확하지 않은 결과(원래 소스 코드와 비교)를 반환하고 반환된 추적 형식이 언제든지 변경될 수 있다는 점에 유의하십시오.스크립트 이름이나 줄 번호와 같은 특정 정보의 반환 값을 분석하지 말아야 합니다( 하지 않아야 ).
다음 예제에는 순차적 함수 호출이 포함되어 있습니다; fnB() 가 호출되고, 그 다음 fnA() 가 호출되며, 그 다음 debug.traceback() 가 호출됩니다.
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- 추적 시작을 위해 fnB() 함수 호출
fnB()
매개 변수
coroutine.create()에서 반환된 스레드.
반환된 문자열의 첫 번째 줄.
호출 스택을 "위로" 호출한 횟수입니다.The number of calls "up" the call stack to return.
반환
현재 함수 호출 스택의 추적.
info
호출 스택을 프로그래밍 방식으로 검사할 수 있도록 합니다.이 함수는 반환하는 데이터의 형식을 보장하는 점에서 debug.traceback() 와 다릅니다.이는 일반적인 로깅 및 필터링 목적뿐만 아니라 크래쉬 집계와 같이 구조화된 입력을 기대하는 시스템에 데이터를 보내는 데에도 유용합니다.
local function fnA()
-- 출력 소스 식별자("s")와 라인("l")은 레벨 1과 2에서
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
이 함수는 유사한 목적을 제공하는 표준 Lua 라이브러리의 사용할 수 없는 부분인 debug.getinfo와 유사합니다.
매개 변수
반환된 정보가 호출 스택의 어느 레벨에서 설명해야 하는지 결정합니다.1 의 값은 debug.info() 를 호출하는 함수를 나타내고, 2 의 값은 그 함수를 호출한 함수를 나타내며 계속됩니다.
반환된 정보가 나타내야 하는 것을 설명하는 문자열.문자 slnaf 의 0개 또는 1개만 포함해야 하며, 각각 정보 조각을 나타냅니다:
반환
info
호출 스택을 프로그래밍 방식으로 검사할 수 있도록 합니다.이 함수는 반환하는 데이터의 형식을 보장하는 점에서 debug.traceback() 와 다릅니다.이는 일반적인 로깅 및 필터링 목적뿐만 아니라 크래쉬 집계와 같이 구조화된 입력을 기대하는 시스템에 데이터를 보내는 데에도 유용합니다.
local function fnA()
end
local function fnB()
end
-- fnA()와 fnB() 모두에 대한 출력 라인("l"), 이름("n"), 식별자("f")
print(debug.info(fnA, "lnf")) --> 1 fnA 함수: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2
이 함수는 유사한 목적을 제공하는 표준 Lua 라이브러리의 사용할 수 없는 부분인 debug.getinfo와 유사합니다.
매개 변수
반환된 정보가 설명하는 호출 스택의 기능.
반환
info
호출 스택을 프로그래밍 방식으로 검사할 수 있도록 합니다.이 함수는 반환하는 데이터의 형식을 보장하는 점에서 debug.traceback() 와 다릅니다.이는 일반적인 로깅 및 필터링 목적뿐만 아니라 크래쉬 집계와 같이 구조화된 입력을 기대하는 시스템에 데이터를 보내는 데에도 유용합니다.
local function fnA()
-- 출력 소스 식별자("s")와 라인("l")은 레벨 1과 2에서
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
이 함수는 유사한 목적을 제공하는 표준 Lua 라이브러리의 사용할 수 없는 부분인 debug.getinfo와 유사합니다.
매개 변수
coroutine.create()에서 반환된 스레드.
반환된 정보가 호출 스택의 어느 레벨에서 설명해야 하는지 결정합니다.1 의 값은 debug.info() 를 호출하는 함수를 나타내고, 2 의 값은 그 함수를 호출한 함수를 나타내며 계속됩니다.
반환된 정보가 나타내야 하는 것을 설명하는 문자열.문자 slnaf 의 0개 또는 1개만 포함해야 하며, 각각 정보 조각을 나타냅니다:
반환
dumpcodesize
개별 함수와 스크립트의 네이티브 코드 크기 표를 표시합니다.이 함수는 Studio의 명령 모음에서만 사용할 수 있습니다.자세한 내용은 네이티브 코드 생성 페이지에서 확인할 수 있습니다.