一.安裝Visual Studio Code(vscode)和插件中心搜索安裝luaide
二.配置luach.json
1.工程文件夾直接拖入vscode即可
2.左側(cè)欄調(diào)試圖標->設(shè)置->選擇LuaDebug,這時會出現(xiàn)launch.json文件
3.在launch.json文件中找到exePath字段修改到模擬器路徑
例如:"exePath": "D:/xxx/player-3.x/player3.exe",
其他地方配置默認就可以。
三.lua斷點調(diào)試配置
? ? 1.下載LuaDebug.lua這個文件
? ? ? 地址: https://github.com/k0204/LuaIde
2.把LuaDebug.lua文件放在工程src目錄下
3..調(diào)試代碼添加
? ? ? ? 在main.lua文件中添加以下代碼:
? ? ? ? ? ? local breakInfoFun,xpcallFun = require("LuaDebug")("localhost", 7003)
? ? ? ? ? ?
? ? ? ? ? ? --3.x
? ? ? ? ? ? --1.斷點定時器添加
? ? ? ? ? ? cc.Director:getInstance():getScheduler():scheduleScriptFunc(breakInfoFun, 0.3, false)
? ? ? ? ? ? --2.程序異常監(jiān)聽
? ? ? ? ? ? function G__TRACKBACK(errorMessage)
? ? ? ? ? ? debugXpCall();
? ? ? ? ? ? print("----------------------------------------")
? ? ? ? ? ? local msg = debug.traceback(errorMessage, 3)
? ? ? ? ? ? print(msg)
? ? ? ? ? ? print("----------------------------------------")
? ? ? ? ? ? end
? ? ? ? ? ? local status, msg = xpcall(main, G__TRACKBACK)
? ? ? ? ? ? --如果是2.x
? ? ? ? ? ? CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(breakInfoFun, 0.3, false)
? ? ? ? ? ? function G__TRACKBACK(errorMessage)
? ? ? ? ? ? debugXpCall();
? ? ? ? ? ? print("----------------------------------------")
? ? ? ? ? ? local msg = debug.traceback(errorMessage, 3)
? ? ? ? ? ? print(msg)
? ? ? ? ? ? print("----------------------------------------")
? ? ? ? ? ? end
? ? ? ? ? ? local status, msg = xpcall(main, G__TRACKBACK)
四.調(diào)試:
1.按F5啟動調(diào)試
調(diào)試一旦啟動,編輯器頂部就會顯示出調(diào)試命令欄
繼續(xù) / 暫停 F5
跳過 F10
進入 F11
退出 Shift+F11
重新開始 unassigned
停止調(diào)試 Shift+F5
2.單擊VS Code左側(cè)視圖欄的調(diào)試圖標即可打開調(diào)試視圖。
3.一些調(diào)試小技巧
1變量區(qū)域不單能直觀看到值,也可以直接編輯變量值調(diào)試,或者通過鼠標懸停在編輯器中的源碼上編輯。
2想要一直跟蹤某個變量,可以編輯那個變量到監(jiān)視里。
3利用調(diào)用堆棧,可以知道當出錯函數(shù)被誰調(diào)用的時候出錯。這樣一層層的看上去,有時可以猜測出錯誤的原因。
4在源代碼不可得但是函數(shù)名稱已經(jīng)知曉的情況下,可以通過按斷點區(qū)域頭部的+來創(chuàng)建斷點函數(shù)。
五.編輯用戶代碼片段(Snippets)
菜單欄->文件->首選項->用戶代碼片段->lua
參數(shù)解釋:
prefix? ? ? :這個參數(shù)是使用代碼段的快捷入口,比如這里的log在使用時輸入log會有智能感知.
body? ? ? ? :這個是代碼段的主體.需要設(shè)置的代碼放在這里,字符串間換行的話使用\r\n換行符隔開.注意如果值里包含特殊字符需要進行轉(zhuǎn)義.
多行語句的以,隔開。
$1? ? ? ? ? :這個為光標的所在位置.
$2? ? ? ? ? :使用這個參數(shù)后會光標的下一位置將會另起一行,按tab鍵可進行快速切換,還可以有$3,$4,$5.....
description :代碼段描述,在使用智能感知時的描述