모듈:단순 디버그/샌드박스
Module| 모듈에 대한 모듈 샌드박스 페이지입니다.단순 디버그(diff). |
Lua 모듈을 디버깅하는 데 도움이 되는 기능이 포함되어 있습니다.모듈(일반적인) 또는 여러 모듈(메인 모듈에서 필요한)에서 루아 프로그램의 여러 변수 및/또는 포인트 값을 수집하고 볼 수 있습니다.
디버깅할 모듈 내에서 함수가 호출되도록 설계되었으며, 사용자가 삭제하기로 결정할 때까지 코드의 일부가 되어야 하는 호출(설계한 모듈의 호출 또는 버그를 이미 확인한 경우)입니다.따라서 호출에서 함수를 호출할 필요가 없습니다.
사용하다
| 한 가지 또는 여러 가지 관전 포인트 | ||
|---|---|---|
기능 약어:w어디서n이름들v변수s현을 매다 | ||
| 변수 | ||
| 이름. | 체납 | |
tab.oneline | 진실의 |
|
tab.allidx | 거짓의 | true이면 테이블의 숫자 인덱스도 표시합니다. |
dec | -1 | 소수점 이하의 공백:
|
enabled | 진실의 | 거짓일 경우 아래 기능에 대한 모든 호출은 아무것도 수행하지 않습니다. |
nohtml | 거짓의 | 문자열에서는 < for ⪡, >를 ⪢로 바꿉니다. |
plaintext | 거짓의 | HTML 형식을 삭제합니다. |
| 한 가지 관전 포인트 | ||
| 기능들 | ||
w (where) |
| |
v (...) |
| |
wv (where, ...) |
| |
nv (...) |
| |
wnv (where, ...) |
| |
| 주목해야 할 몇 가지 | ||
| 변수 | ||
| 이름. | 체납 | |
s | 다음 함수에서 반환된 값을 유지하는 문자열 변수입니다. | |
maxlines.num | 100 | (다음 함수를 호출할 때) 최대 회선 수입니다. |
maxlines.doerror | 진실의 | 만약 그것이 사실이라면 그리고. |
counter | 거짓의 | 함수의 각 호출 시작 부분에 자동 증분 번호를 추가합니다. |
| 기능들 | ||
breakline () | 브레이크라인을 추가합니다. | |
wtos (where) | 같음 | |
vtos (...) | 같음 | |
wvtos (where, ...) | 같음 | |
nvtos (...) | 같음 | |
wnvtos (where, ...) | 이과알라 | |
예
한 가지 관전 포인트
흐름을 따라가기
현지의 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".