debug

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

Roblox에서 코드를 디버깅하기 위한 몇 가지 기본 기능을 제공합니다.루아에서 기본적으로 찾을 수 있는 라이브러리 debug와는 달리, 이 버전은 크게 샌드박스화되었습니다.

요약

함수

  • traceback(message : string,level : number):string

    현재 함수 호출 스택을 설명하는 정의되지 않은 형식의 문자열을 반환합니다.

  • traceback(thread : coroutine,message : string,level : number):string

    현재 함수 호출 스택을 설명하는 정의되지 않은 형식의 문자열을 반환합니다.

  • info(level : number,options : string):Tuple

    현재 스택의 전체를 가로지르고 대상 수준 세부 정보의 호출 스택을 포함하는 문자열을 반환합니다.

  • info(function : function,options : string):Tuple

    현재 스택의 전체를 가로지르고 대상 함수 세부 정보의 호출 스택을 포함하는 문자열을 반환합니다.

  • info(thread : coroutine,level : number,options : string):Tuple

    대상 스레드 전체를 가로지르고 대상 레벨 세부 정보의 호출 스택을 포함하는 문자열을 반환합니다.

  • profilebegin(label : string):()

    레이블에 대한 프로파일링을 시작합니다.

  • 가장 최근에 열린 레이블에 대한 프로파일링을 중지합니다. 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()

매개 변수

message: string

반환된 문자열의 첫 번째 줄.

level: number

호출 스택을 "위로" 호출한 횟수입니다.The number of calls "up" the call stack to return.

기본값: 1

반환

현재 함수 호출 스택의 추적.

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()

매개 변수

thread: coroutine

coroutine.create()에서 반환된 스레드.

message: string

반환된 문자열의 첫 번째 줄.

level: number

호출 스택을 "위로" 호출한 횟수입니다.The number of calls "up" the call stack to return.

기본값: 1

반환

현재 함수 호출 스택의 추적.

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와 유사합니다.

매개 변수

level: number

반환된 정보가 호출 스택의 어느 레벨에서 설명해야 하는지 결정합니다.1 의 값은 debug.info() 를 호출하는 함수를 나타내고, 2 의 값은 그 함수를 호출한 함수를 나타내며 계속됩니다.

options: string

반환된 정보가 나타내야 하는 것을 설명하는 문자열.문자 slnaf 의 0개 또는 1개만 포함해야 하며, 각각 정보 조각을 나타냅니다:

  • s ( 문자열 ) — 함수 소스 식별자, 함수가 정의된 스크립트의 전체 이름과 동일합니다.
  • l ( 번호 ) — level에 의해 나타낸 함수 호출의 라인 번호.
  • n ( 문자열 ) — 함수의 이름; 지정된 디버그 이름이 없는 익명 함수와 C 함수에 대해 nil 일 수 있습니다.
  • a ( 숫자 , 부울 ) — 함수의 아리티는 매개 변수 수와 함수가 변형적인지 여부를 참조합니다.
  • f ( 함수 ) — 검사된 함수.

반환

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와 유사합니다.

매개 변수

function: function

반환된 정보가 설명하는 호출 스택의 기능.

options: string

반환된 정보가 나타내야 하는 것을 설명하는 문자열.문자 slnaf 의 0개 또는 1개만 포함해야 하며, 각각 정보 조각을 나타냅니다:

  • s ( 문자열 ) — 함수 소스 식별자, 함수가 정의된 스크립트의 전체 이름과 동일합니다.
  • l ( 번호 ) — 에서 정의된 라인입니다. function
  • n ( 문자열 ) — 함수의 이름; 지정된 디버그 이름이 없는 익명 함수와 C 함수에 대해 nil 일 수 있습니다.
  • a ( 숫자 , 부울 ) — 함수의 아리티는 매개 변수 수와 함수가 변형적인지 여부를 참조합니다.
  • f ( 함수 ) — 검사된 함수.

반환

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와 유사합니다.

매개 변수

thread: coroutine

coroutine.create()에서 반환된 스레드.

level: number

반환된 정보가 호출 스택의 어느 레벨에서 설명해야 하는지 결정합니다.1 의 값은 debug.info() 를 호출하는 함수를 나타내고, 2 의 값은 그 함수를 호출한 함수를 나타내며 계속됩니다.

options: string

반환된 정보가 나타내야 하는 것을 설명하는 문자열.문자 slnaf 의 0개 또는 1개만 포함해야 하며, 각각 정보 조각을 나타냅니다:

  • s ( 문자열 ) — 함수 소스 식별자, 함수가 정의된 스크립트의 전체 이름과 동일합니다.
  • l ( 번호 ) — level에 의해 나타낸 함수 호출의 라인 번호.
  • n ( 문자열 ) — 함수의 이름; 지정된 디버그 이름이 없는 익명 함수와 C 함수에 대해 nil 일 수 있습니다.
  • a ( 숫자 , 부울 ) — 함수의 아리티는 매개 변수 수와 함수가 변형적인지 여부를 참조합니다.
  • f ( 함수 ) — 검사된 함수.

반환

profilebegin

()

마이크로프로파일러 레이블에 대한 프로파일링을 시작합니다.

매개 변수

label: string

마이크로프로파일러 레이블에 표시되는 텍스트.

반환

()

profileend

()

가장 최근의 MicroProfiler 레이블에 대한 프로파일링을 중지하여 열었습니다. debug.profilebegin()

반환

()

getmemorycategory

현재 스레드의 활성 메모리 카테고리 이름을 반환합니다.

반환

현재 스레드의 활성 메모리 카테고리.

setmemorycategory

개발자 콘솔에서 현재 스레드의 메모리 카테고리에 사용자 지정 태그 이름을 할당합니다.일반적으로 동일한 태그/이름으로 그룹화되는 여러 스레드의 메모리 사용량을 분석하는 데 유용합니다.현재 스레드의 이전 메모리 카테고리 이름을 반환합니다.

매개 변수

tag: string

반환

현재 스레드의 이전 메모리 카테고리.

resetmemorycategory

()

debug.setmemorycategory()에 의해 할당된 태그를 자동으로 할당된 값(일반적으로 스크립트 이름)으로 재설정합니다.

반환

()

dumpcodesize

()

개별 함수와 스크립트의 네이티브 코드 크기 표를 표시합니다.이 함수는 Studio의 명령 모음에서만 사용할 수 있습니다.자세한 내용은 네이티브 코드 생성 페이지에서 확인할 수 있습니다.

반환

()