多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > 綜合技術(shù) > skynet lua 代碼靜態(tài)分析

skynet lua 代碼靜態(tài)分析

來(lái)源:程序員人生   發(fā)布時(shí)間:2016-12-02 09:25:24 閱讀次數(shù):4621次
skynet是1款為多人在線游戲設(shè)計(jì)的服務(wù)端框架,使用C+Lua開(kāi)發(fā)。skynet這套框架的1個(gè)優(yōu)點(diǎn)是,通常只需要寫(xiě)lua代碼,很少用到c做開(kāi)發(fā),1定程度上提高了開(kāi)發(fā)效力。而skynet文檔相對(duì)較少,所以這里利用1點(diǎn)時(shí)間學(xué)習(xí)和總結(jié)skynet相干內(nèi)容,文章就講授下skynet lua代碼靜態(tài)分析。

skynet項(xiàng)目大部份代碼應(yīng)當(dāng)是lua代碼,而這部份代碼,在skynet啟動(dòng)前不需要手動(dòng)編譯,直接啟動(dòng)skynet就能夠跑起來(lái)。也就是說(shuō),對(duì)lua代碼,skynet沒(méi)有提供編譯工具,其實(shí)也沒(méi)有必要提供。

但是,這對(duì)開(kāi)發(fā)來(lái)講,有時(shí)候卻很不友好,由于lua代碼需要等skynet跑起來(lái)且履行到才知道是不是有毛病。

所以,這里講授如何對(duì)skynet lua項(xiàng)目進(jìn)行代碼靜態(tài)分析,在開(kāi)發(fā)的時(shí)候盡早發(fā)現(xiàn)問(wèn)題。固然,文章除適用skynet項(xiàng)目,還適用其他使用lua的項(xiàng)目。

lua項(xiàng)目代碼靜態(tài)分析的方法有兩個(gè):
1、使用lua編譯器(luac)進(jìn)行分析
2、使用luacheck插件進(jìn)行分析

第1種方法,利用lua編譯器對(duì)lua代碼進(jìn)行語(yǔ)法檢查。這類(lèi)方法簡(jiǎn)單有效,具體方法我在之前的文章介紹過(guò),有興趣點(diǎn)這里瀏覽。skynet項(xiàng)目lua代碼簡(jiǎn)單加密 -- 沒(méi)有開(kāi)花的樹(shù) csdn

第2種方法,使用Luacheck對(duì)lua代碼進(jìn)行分析。這類(lèi)方法是我比較推薦的,luacheck是個(gè)優(yōu)秀的第3方插件,代碼是MIT開(kāi)源的,有興趣點(diǎn)這里圍觀。Luacheck Git


Lua分析器(Luacheck)

Luacheck介紹

Luacheck是Lua1個(gè)靜態(tài)分析工具,與Lua語(yǔ)言編譯器相比,Luacheck可以對(duì)lua程序進(jìn)行更加嚴(yán)格的毛病分析。它不但可以檢查出lua語(yǔ)法問(wèn)題,而且可以檢查那些完全合乎語(yǔ)法但卻極可能是毛病的代碼。換句話(huà)說(shuō),Luacheck能檢查到lua程序中潛伏的毛病,如未定義的變量使用,未使用的變量和值,未定義的全局變量使用,履行不到的代碼等等

Luacheck安裝與使用

安裝:
# git clone https://github.com/mpeterv/luacheck.git # cd luacheck # ./install.lua /usr
使用:
# luacheck ./install.lua Checking install.lua OK Total: 0 warnings / 0 errors in 1 file
注意了,luacheck依賴(lài)lua,使用請(qǐng)確保lua已安裝

如果想檢查全部項(xiàng)目的lua代碼,方法以下:
#!/bin/bash Luas=`find . -name "*.lua"` if [ "$Luas" != "" ]; then luacheck $Luas fi
保存為 test.sh,履行,大致效果以下:
# chmod +x ./test.sh # ./test.sh Checking bin/luacheck.lua OK Checking spec/check_spec.lua OK Checking spec/lexer_spec.lua OK Checking spec/cache_spec.lua OK Checking spec/globbing_spec.lua OK Checking spec/config_spec.lua OK ... Total: 0 warnings / 0 errors in 42 files



Luacheck參數(shù)說(shuō)明

Luacheck值得推薦的地方,除能查找lua毛病,更重要的是,它可以自定義捕捉的毛病類(lèi)型。可能有些寫(xiě)法我們不認(rèn)為是錯(cuò)的,就能夠避免顯示出來(lái)。
# luacheck --help Usage: luacheck ([--config] | [--no-config]) [-g] [-u] [-r] [-a] [-s] [--no-self] [--std] [-c] [-d] [-t] [-m] [--no-inline] [--filename] [-j] [--formatter] [-q] [--codes] [--ranges] [--no-color] [-v] [-h][] ... [--globals [] ...] [--read-globals [] ...] [--new-globals [] ...] [--new-read-globals [] ...] [--ignore[] ...] [--enable[] ...] [--only[] ...] [--exclude-files[] ...] [--include-files[] ...]

這里重點(diǎn)介紹以下幾個(gè)參數(shù):
--no-unused 疏忽變量未使用
--no-unused-args 疏忽參數(shù)未使用
--no-redefined 疏忽變量重定義
--globals... 疏忽哪些全局變量
--ignore... 疏忽哪些毛病提示
--quiet 只顯示有毛病的文件提示
--codes 顯示毛病編號(hào)


Luacheck示例

以例子說(shuō)明前面幾個(gè)參數(shù)吧。
# luacheck $Luas --no-unused --quiet --no-unused-args --no-redefined --no-color --globals table string --ignore 542 512 Total: 0 warnings / 0 errors in 42 files

解釋以上,個(gè)別參數(shù)分別代表甚么意思?
--globals table string 疏忽全局變量table、string的聲明和使用
--ignore 542 512 疏忽編號(hào)為542、512的毛病

至于 542 512分別代表甚么,怎樣得到的,看這里。

怎樣得到1個(gè)毛病的編號(hào)?
# cat ./test.lua local t={} for k,v in pairs(t) do return k,v end # luacheck ./test.lua --codes Checking test.lua 1 warning test.lua:2:1: (W512) loop is executed at most once Total: 1 warning / 0 errors in 1 file
以上,512就是這個(gè)毛病的編號(hào),所以 --ignore 512就是疏忽這個(gè)毛病提示。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产欧美日韩另类 | 亚洲网站www | 在线免费观看中文字幕 | 久久亚洲精品一区成人 | 午夜免费福利在线 | 国产精品欧美在线不卡 | 一区二区三区免费视频 www | 春色视频免费版高清在线观看 | 日本强在线播放一区 | 欧美成人精品一区二三区在线观看 | 国产逼逼 | 亚洲一区二区三区精品视频 | 国产精品国产三级国产在线观看 | 精彩视频一区二区三区 | 最近中文字幕国语完整在线5 | 手机看片久久高清国产日韩 | 日本在线一区二区 | 一二三四在线播放免费观看中文版视频 | 亚洲一区二区三区不卡视频 | 欧美性猛交xxx乱大交 | 亚洲国产日韩欧美综合久久 | 男女污视频在线观看 | 久久久久99这里有精品10 | av中文字幕网免费观看 | 欧美日韩激情一区二区三区 | 最近中文国语字幕 | 国产图片区 | 日产日韩亚洲欧美综合搜索 | 欧美一区视频在线 | 亚洲视频大全 | 久久r这里只有精品 | 欧美最猛同性video | 不卡免费视频 | 久久精品23| 玖玖爱国产| 久久网视频 | 久久艹综合 | 亚洲欧洲日产国产 最新 | 亚洲国产天堂久久九九九 | 最近中文字幕无吗免费高清 | 日韩高清在线高清免费 |