Cocos2d 調(diào)試

準備工作

調(diào)試代碼下載

調(diào)試示例下載

生成調(diào)試配置

這里很多同學出現(xiàn)過一個問題,就是同時下載了很多的lua 調(diào)試插件,所以這里需要注意 如果使用luaide進行l(wèi)ua調(diào)試,
需要先禁用或卸載其他的lua調(diào)試插件.

步驟:

  1. 如果你沒有生成過調(diào)試配置 那么先生成
    演示

    演示

    演示

    演示
  2. 如果你已經(jīng)有調(diào)試配置了可修改/刪除工作目錄下的.vscode/launch.json
  3. 根據(jù)調(diào)試需要選擇本地或者遠程調(diào)試即可

參數(shù)說明

參數(shù)說明:

launch 本地調(diào)試

{
    "name": "Cocos2-launch",
    "type": "lua",
    "request": "launch",
    "runtimeType": "Cocos2",
    "localRoot": "${workspaceRoot}",
    "commandLine": "-workdir ${workspaceRoot} -file src/main.lua",
    "port": 7003,
    "exePath": "E:\\editor\\quick-2.2.6\\player\\win\\player.exe",
    "printType": 1
}
  1. name:命名調(diào)試器選擇項名字

    演示

  2. type: 默認配置不需要修改

  3. request:默認配置不需要修改

  4. runtimeType:默認配置不需要修改

  5. localRoot: 調(diào)試腳本目錄,用于調(diào)試器查找對應的lua文件

  6. commandLine: 刪除原有的mainFile 配置 改為直接填寫 命令參數(shù)
    如果打開的文件夾為 src/scripts 目錄 那么參數(shù)應該寫為
    "commandLine": "-workdir ${workspaceRoot}/../ -file src/test1.lua",

  7. port: 調(diào)試端口 和 調(diào)試代碼中的端口統(tǒng)一即可 無特殊需求

  8. exePath:執(zhí)行的exe文件路徑 例如:E:/cocos/player/player.exe

  9. printType: print打印方式

    1. 控制臺和系統(tǒng)輸出
    2. 控制臺輸出
    3. 系統(tǒng)輸出

attach 遠程調(diào)試

{
    "name": "COCOS(remote debugging)",
    "type": "lua",
    "request": "attach",
    "runtimeType": "Cocos2",
    "localRoot": "${workspaceRoot}",
    "port": 7003,
    "printType": 1
},
  1. name:命名調(diào)試器選擇項名字 同上
  2. type: 默認配置不需要修改
  3. request:默認配置不需要修改
  4. runtimeType:默認配置不需要修改
  5. localRoot: 與本地調(diào)試不同,遠程調(diào)試 localRoot 當做scriptMap 一般情況下默認為 ${workspaceRoot} 即可,如果你的代碼目錄是 ${workspaceRoot} 下載的某個路徑 也可明確指定 如 ${workspaceRoot}/scripts
  6. port: 調(diào)試端口 和 調(diào)試代碼中的端口統(tǒng)一即可 無特殊需求
  7. printType: print打印方式
    1. 控制臺和系統(tǒng)輸出
    2. 控制臺輸出
    3. 系統(tǒng)輸出

調(diào)試代碼添加

說明:
下載對應的LuaDebug 或 LuaDebugjit 后放入腳本目錄中

local breakSocketHandle,debugXpCall = require("LuaDebugjit")("192.168.1.102",7003)   
local breakSocketHandle,debugXpCall = require("LuaDebugjit")("localhost",7003) 
1. IP地址當本機調(diào)試時可使用localhost遠程調(diào)試或移動設備端調(diào)試是需要輸入調(diào)試器所在機器具體的ip 
2. port 端口 LuaIde 默認配置中端口為7003  如有需要可執(zhí)行更改確保調(diào)試器配置端口和調(diào)用
代碼的端口統(tǒng)一即可  
3. breakSocketHandle luaIde斷點及時刷新函數(shù),需要在定時器中調(diào)用 該函數(shù)確保斷點能夠及時的
發(fā)送到lua 客戶端  
4. debugXpCall 程序異常監(jiān)聽函數(shù),用于當程序出現(xiàn)異常時調(diào)試器定位錯誤代碼     

cocos2.x

local breakSocketHandle,debugXpCall = require("LuaDebug")("localhost",7003)
CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(breakSocketHandle ,0.3,false)
--如果已經(jīng)存在 __G__TRACKBACK__ 請將 debugXpCall 直接加入 __G__TRACKBACK__ 即可
--__G__TRACKBACK__ 方法不是必須 debugXpCall是實現(xiàn)的是在lua 腳本調(diào)用錯誤時進行代碼錯誤定位
function __G__TRACKBACK__(errorMessage)
    debugXpCall();
end
local status, msg = xpcall(main, __G__TRACKBACK__)

示例文件:cocos2x_main.lua

cocos3.x

注意:由于cocos3.x 較高版本對全局變量進行了限制 所以 調(diào)試代碼需要添加在 require "cocos.init" 之前如下圖:

image.png

2018_5_13:更新 有些版本由于設置問題不能找到 src 目錄 可將 cc.FileUtils.getInstance():addSearchPath("src/") 放在調(diào)試文件上方
如下圖:


image.png
local breakSocketHandle,debugXpCall = require("LuaDebugjit")("localhost",7003)
cc.Director:getInstance():getScheduler():scheduleScriptFunc(breakSocketHandle, 0.3, false) 
--如果已經(jīng)存在 __G__TRACKBACK__ 請將 debugXpCall 直接加入 __G__TRACKBACK__ 即可
--__G__TRACKBACK__ 方法不是必須 debugXpCall是實現(xiàn)的是在lua 腳本調(diào)用錯誤時進行代碼錯誤定位 
function __G__TRACKBACK__(errorMessage)  
    debugXpCall();  
end  
local status, msg = xpcall(main, __G__TRACKBACK__)

示例文件:cocos3x_main.lua

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缆巧,更是在濱河造成了極大的恐慌昂羡,老刑警劉巖螟够,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桥胞,死亡現(xiàn)場離奇詭異导俘,居然都是意外死亡治笨,警方通過查閱死者的電腦和手機驳概,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旷赖,“玉大人顺又,你說我怎么就攤上這事〉确酰” “怎么了稚照?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長俯萌。 經(jīng)常有香客問我果录,道長,這世上最難降的妖魔是什么咐熙? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任弱恒,我火速辦了婚禮,結(jié)果婚禮上棋恼,老公的妹妹穿的比我還像新娘返弹。我一直安慰自己锈玉,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布琉苇。 她就那樣靜靜地躺著嘲玫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪并扇。 梳的紋絲不亂的頭發(fā)上去团,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音穷蛹,去河邊找鬼土陪。 笑死,一個胖子當著我的面吹牛肴熏,可吹牛的內(nèi)容都是我干的鬼雀。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蛙吏,長吁一口氣:“原來是場噩夢啊……” “哼源哩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸦做,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤励烦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泼诱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坛掠,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年治筒,在試婚紗的時候發(fā)現(xiàn)自己被綠了屉栓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡耸袜,死狀恐怖友多,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堤框,我是刑警寧澤域滥,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站胰锌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏藐窄。R本人自食惡果不足惜资昧,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荆忍。 院中可真熱鬧格带,春花似錦撤缴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棺亭,卻和暖如春虎眨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背镶摘。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工嗽桩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凄敢。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓碌冶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親涝缝。 傳聞我的和親對象是個殘疾皇子扑庞,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)拒逮,斷路器罐氨,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 指令集 lua_capture_error_log lua_use_default_type lua_malloc...
    吃瓜的東閱讀 11,976評論 0 2
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,145評論 2 34
  • 第一天玩簡書,沒有傲嬌消恍、沒有感嘆岂昭。 看一大堆理論再解決問題,還不如就問題解決問題狠怨,實實在在约啊。問題解決完了,再去結(jié)合...
    風語飛翔閱讀 147評論 0 0