모듈:단순 디버그/문서

Module

Lua 모듈을 디버깅하는도움이 되는 기능이 포함되어 있습니다.모듈(일반적인) 또는 여러 모듈(메인 모듈에서 필요한)에서 루아 프로그램의 여러 변수 및/또는 포인트 값을 수집하고 볼 수 있습니다.

디버깅할 모듈 내에서 함수가 호출되도록 설계되었으며, 사용자가 삭제하기로 결정할 때까지 코드의 일부가 되어야 하는 호출(설계한 모듈의 호출 또는 버그를 이미 확인한 경우)입니다.따라서 호출에서 함수를 호출할 필요가 없습니다.

사용하다

한 가지 또는 여러 가지 관전 포인트
기능 약어:w어디서n이름들v변수s현을 매다
변수
이름. 체납
tab.oneline 진실의
  • 거짓이거나 참이며 중첩 테이블을 포함하는 경우 테이블의 각 항목에 대한 줄과 중첩 테이블에 대한 들여쓰기가 표시됩니다.
  • true이고 중첩된 테이블이 없으면 테이블을 한 줄로 표시합니다.
tab.allidx 거짓의

true이면 테이블의 숫자 인덱스도 표시합니다.

dec -1

소수점 이하의 공백:

  • -1: 필요한 모든 소수를 표시합니다.
  • 0: 소수 없음.
  • n: 1: 1 소수, 2: 2 소수 등
enabled 진실의

거짓일 경우 아래 기능에 대한 모든 호출은 아무것도 수행하지 않습니다.

nohtml 거짓의

문자열에서는 < for ⪡, >를 ⪢로 바꿉니다.

plaintext 거짓의

HTML 형식을 삭제합니다.

한 가지 관전 포인트
기능들
w (where)
  • 여기서: 점 레이블.
v (...)
  • 변수 수 = var1, var2...
wv (where, ...)
  • 여기서: 점 레이블.
  • 변수 수 = var1, var2...
nv (...)
  • 여러 쌍의 name-pairs = name1, var1, name2, var2...
wnv (where, ...)
  • 여기서: 점 레이블.
  • 여러 쌍의 name-pairs = name1, var1, name2, var2...
주목해야 할 몇 가지
변수
이름. 체납
s

다음 함수에서 반환된 값을 유지하는 문자열 변수입니다.

maxlines.num 100

(다음 함수를 호출할 때) 최대 회선 수입니다.

maxlines.doerror 진실의

만약 그것이 사실이라면 그리고.maxlines.num도달했습니다.error(s)이 호출됩니다.

counter 거짓의

함수의 각 호출 시작 부분에 자동 증분 번호를 추가합니다.

기능들
breakline ()

브레이크라인을 추가합니다.s.

wtos (where)

같음w그러나 반환 문자열은 다음에 저장됩니다.s.

vtos (...)

같음v그러나 반환 문자열은 다음에 저장됩니다.s.

wvtos (where, ...)

같음wv그러나 반환 문자열은 다음에 저장됩니다.s.

nvtos (...)

같음nv그러나 반환 문자열은 다음에 저장됩니다.s.

wnvtos (where, ...)

이과알라wnv그러나 반환 문자열은 다음에 저장됩니다.s.

한 가지 관전 포인트

흐름을 따라가기

현지의 SD = 요구하다 "모듈:단순 디버그" 돌아가다 SD.v ('여기에 도달했습니다.') 

반환:

여기에 도달했습니다.


변수의 소수 자릿수 및 값

현지의 SD = 요구하다 "모듈:단순 디버그" SD.데크 = 2 돌아가다 SD.v (1/3) 

반환:

0.33


노트ml

현지의 SD = 요구하다 "모듈:단순 디버그" SD.nohtml = 진실의 돌아가다 SD.v ("대담한") 

반환:

"⪡b⪢bold⪢/b⪡"


일반 텍스트

현지의 SD = 요구하다 "모듈:단순 디버그" SD.평이한 텍스트 = 진실의 돌아가다 SD.v ("대담한") 

반환:

"대담한"


여러 변수의 값

현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = 12 현지의 b = '안녕하세요' 돌아가다 SD.v (a,b) 

반환:

12 • "안녕하세요"


할당되지 않은 변수 탐지

현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = 진실의 돌아가다 SD.v (a,b) 

반환:

참 • 0


표의 값

현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = {1, =a., 'b'} 돌아가다 SD.v (a) 

반환: {1, "b", [tab]="a", }


현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = {{1,2,3},{4,5,6},{7,8,9}} 돌아가다 SD.v (a) 

반환:

{   [1] = {1, 2, 3, },   [2] = {4, 5, 6, },   [3] = {7, 8, 9, }, }


현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = {{첫번째=1,2,3},{4,둘째=5,6},{7,8,9}} 돌아가다 SD.v (a) 

반환:

[1] = {2, 3, [첫 번째] = 1, }, [2] = {4, 6, [두 번째] = 5, }, [3] = {7, 8, 9, }}


현지의 SD = 요구하다 "모듈:단순 디버그" SD..모든 지수 = 진실의 현지의 a = {{1,2,3},{4,영의,6},{7,8,9}} 돌아가다 SD.v (a) 

반환:

{    [1]={[1]=1, [2]=2, [3]=3, },    [2]={[1]=4, [3]=6, },    [3]={[1]=7, [2]=8, [3]=9, },  }


일반적으로 오류 기능을 사용하여 다음 기능을 구현합니다.

현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = {{1,2,3},{4,5,6},{7,8,9}} 오류 (SD.v (a)) 

디스플레이:

Lua 오류:모듈:사용자의 모듈::{

[1] = {1, 2, 3, },
[2] = {4, 5, 6, },
[3] = {7, 8, 9, },
}


여러 줄로 된 테이블의 모든 값

현지의 SD = 요구하다 "모듈:단순 디버그" SD..한 줄 = 거짓의 현지의 a = {{첫번째=1,2,3},'중간',{4,둘째=5,6}} 돌아가다 SD.v (a) 

반환:

[1] = {[1] = 2, [2] = 3, ["첫 번째"] = 1, = [2] = "중간", [3] = {[1] = 4, [2] = 6, [두 번째"] ▁5 5, }


점에 이름이 있는 여러 변수의 값

현지의 SD = 요구하다 "모듈:단순 디버그" 현지의 a = 12 현지의 b = '안녕하세요' 돌아가다 SD.nv (a.,a,'b',b) 

반환:

a: 12 • b: "안녕하세요"


주목해야 할 몇 가지

흐름을 따라가기

현지의 SD = 요구하다 "모듈:단순 디버그"  현지의  = {1,12,7} 기능. p.값 확인 ()   현지의 기능. 리틀넘()     SD.위토스 ('소수')   끝.   현지의 기능. 빅넘(번호)     SD.위토스 ('big='..번호)   끝.   위해서 i, 번호  짝을 짓다() 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다     한다면 번호 > 9 그리고나서       빅넘(번호)     또 다른       리틀넘()     끝.     끝.     오류 (SD.s) 끝. 

반환:

Lua 오류:모듈:모듈::

적은 수

big=12

소수


카운터 포함

현지의 SD = 요구하다 "모듈:단순 디버그"  기능. 증분()   현지의 n = 0   위해서 i = 1, 3 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다     n = n + 2     SD.vtos (n)   끝. 끝. SD.계산대 = 진실의 증분() 돌아가다 SD.s 

반환:

1 • 2

2 • 4

3 • 6

여러 변수의 모니터링

현지의 SD = 요구하다 "모듈:단순 디버그" a = 12 b = '안녕하세요' SD.vtos (1,a,b) a = a + a b = b..세상!' SD.vtos ('드디어',a,b) 돌아가다 SD.s 

반환:

1 => 12 • "안녕하세요"

마침내 => 24 • "안녕하세요!"


현지의 SD = 요구하다 "모듈:단순 디버그" SD.브레이크라인 () a = 12 b = '안녕하세요' c = 거짓의 SD.nvtos (1,a.,a,'b',b,,c) a = a + a b = b..세상!' SD.nvtos ('드디어',a.,a,'b',b) 오류 (SD.s) 

디스플레이:

Lua 오류:모듈:사용자의 모듈::

1 => a: 12 • b: "안녕하세요" • c: 거짓

마지막으로 => a: 24 • b: "안녕하세요!"

변수 및 조건을 포함한 표현

현지의 SD = 요구하다 "모듈:단순 디버그" SD.브레이크라인() SD.가능한 = 거짓의 SD.최고선.번호 = 3 현지의 a = 'AA' 위해서 i = 1, 10 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   a = a + 'AA'   한다면 i == 3 그리고나서     SD.가능한 = 진실의   끝.   SD.nvtos (i, string.len(a), a) 끝. 

디스플레이:

Lua 오류:모듈:사용자의 모듈::

3 => 8 • "AAAAAAAAA"

4 => 10 • "AAAAAAAAAAA"

5 => 12 • "AAAAAAAAAAAAA".