1.怎么打开lua
2.luadec软件ä¸è½½ï¼
3.luaä¸çexeå¨åªï¼
4.Lua5.4 源码剖析——杂谈 之 如何调试Lua源码
怎么打开lua
1.打开lua文件使用一般的码下文本编辑工具就可以打开和编辑了,linux下使用自带的码下vim编辑器,windows下使用自带的码下记事本就可以。
2.使用
要使用lua文件,码下必须要安装一个lua的码下解析器。因为lua语言是码下去水印apk源码种脚本语言,类似于javascript,码下运行时需要lua解释器。码下
(1)linux环境下这样安装和使用:
curl -R -O /luabuilds/å»ä¸è½½ä½ æ³è¦çé£ä¸ªçæ¬ãä¸è½½ä¸æ¥åæ éå®è£ ï¼ç´æ¥é ç¯å¢åéã
4ãæå¼luaæ件使ç¨ä¸è¬çææ¬ç¼è¾å·¥å ·å°±å¯ä»¥æå¼åç¼è¾äºï¼linuxä¸ä½¿ç¨èªå¸¦çvimç¼è¾å¨ï¼windowsä¸ä½¿ç¨èªå¸¦çè®°äºæ¬å°±å¯ä»¥ã使ç¨è¦ä½¿ç¨luaæ件ï¼å¿ é¡»è¦å®è£ ä¸ä¸ªluaç解æå¨ã
5ãè¿æ¯luaèæ¬è¯è¨ç¼å¶çï¼å¯ä»¥ä¸è½½luaforwindowsè¿ä¸ªè½¯ä»¶ç¶åç¨ç¨åºæå¼è¿ä¸ª.luaæ件ã
6ãè¿ä¸ªå¾ç®å~~è¦çLuaå·ï¼æ¯1çè¯ï¼é£ä½ å¯ä»¥ä¸Luadecæ¥åç¼è¯ãä»å¹¶æ²¡æå å¯ï¼é£æ¯Luaåèç ç¨luacå å¯è¿äºï¼å¯ä»¥dofileçæ ¼å¼è°ç¨è¿è¡ï¼ç¶åä¿®æ¹æ°å¼ä¿åæ¿æ¢ã
luaèæ¬è¢«luacç¼è¯ä¹å,码下å¦ä½åç¼è¯æè åæ±æ åçluaæâCFLuaDCâå·¥å ·å¯ä»¥åç¼è¯ãæ åçlua5æâDisLuaâãâluadecâä¸¤ä¸ªå·¥å ·å¯ä¾éç¨ãï¼ï¼ï¼ä»¥ä¸ä¸ä¸ªå·¥å ·å¨ç½ä¸å¯æç´¢ä¸è½½ãluajitç¼è¯çluacæ件å°æ åç¼è¯å·¥å ·ã
è·è¸ªï¼è±å£³ï¼è§£å ï¼è§£å¯ï¼è·å¾luac追luaL_loadbufferluaL_loadfilelua_loadåºè¯¥å¯ä»¥æ¾å°è§£å¯å½æ°ãhookè¿3个å½æ°ï¼å¯¼åºè§£å¯åçæ°æ®ï¼ç´æ¥å°±æ¯luacæ件ãå¦æ没ç¼è¯çè³æ¯luaæºæ件ã
对äºä½¿ç¨åççluaæçæçèæ¬ï¼é½æç¸åºçåç¼è¯å¨ï¼ä½ è±ç¹å夫æç´¢ï¼ç½ä¸ä¸å®è½æ¾å°çã
å ·ä½æå¼æ¥éª¤å¦ä¸ï¼æä»¶æ ¼å¼åç¼å以*.luaæ ¼å¼åå¨ãç¶åæ们å¨æ¡é¢å®è£ 并åå»æå¼æ¥çå·¥å ·ãç¶åæ们æå¼æ¥çå·¥å ·ç¹å»æ件éæ©æå¼ãç¶åæ们éæ©luaæ件ç¹å»æå¼ãç¶åæ们æå¼åæ¥çæ件å 容ï¼å¹¶å¯ä»¥ç¼è¾ã
è¿ä¸ªå¾ç®å~~è¦çLuaå·ï¼æ¯1çè¯ï¼é£ä½ å¯ä»¥ä¸Luadecæ¥åç¼è¯ãä»å¹¶æ²¡æå å¯ï¼é£æ¯Luaåèç ç¨luacå å¯è¿äºï¼å¯ä»¥dofileçæ ¼å¼è°ç¨è¿è¡ï¼ç¶åä¿®æ¹æ°å¼ä¿åæ¿æ¢ã
lua5.1åluadec0.6è¿è¡é®é¢1ãè¿ä¸ªå¾ç®å~~è¦çLuaå·ï¼æ¯1çè¯ï¼é£ä½ å¯ä»¥ä¸Luadecæ¥åç¼è¯ãä»å¹¶æ²¡æå å¯ï¼é£æ¯Luaåèç ç¨luacå å¯è¿äºï¼å¯ä»¥dofileçæ ¼å¼è°ç¨è¿è¡ï¼ç¶åä¿®æ¹æ°å¼ä¿åæ¿æ¢ã
2ãæ¯çï¼è¿åºè¯¥æ¯å·²ç»ç¼è¯è¿çLUAç¨åºï¼æ¯äºè¿å¶ä»£ç ï¼ä¸æ¯ææ¬ï¼æ以æå¼ä¹åæ¯ä¹±ç ãé¤éä½ æ¾åä½è 请æ±ä»æä¾æºä»£ç ï¼ä¸ç¶åºæ¬ä¸æ 解ã
3ãè¿ä¸ªæ¯baseç¼ç è¿çï¼base解ç ä¸ä¸å°±å¥½äºã
luacèæ¬æä¹ç¼è¾æå¼å¶ä½1ãå¨å°åä¸æå³é®ï¼éæ©éæµè§ç¸å ³å ååºåå°ãæå¼éå åæµè§å¨å°ï¼å¨çªå£ä¸æ¹å°±æ¯è¯¥å°åæå¨çå åæ°å¼ï¼å ¶å®çå åæ°å¼ä¹å¨è¿éãåå»å°±å¯ä»¥ç¼è¾ãå¯æ¯ä¿®æ¹å没ææ示ï¼ä¸å©äºæ¥çã
2ã第ä¸æ¥ï¼æ°å»ºèæ¬ï¼è¿å ¥èæ¬ç¼è¾å¨ç¹å»ä¸æ¹å·¥å ·æ çæ°å»ºæé®ï¼å°±å¯ä»¥æ°å»ºä¸ä¸ªèæ¬ã
3ãåéè¡¨æ ¼å¼ï¼æ¯è¾çµæ´»çèæ¬ç±»åï¼éç¨èå´å¹¿ï¼è¿éæä¹åäºä¸ä¸ªç®åçæ ·å¼ä½ä¸ºåèãæä¸åçç»é¢éè¦å±ç¤ºçå 容ï¼æç §å§æ åå±ä¾æ¬¡æå好ï¼å¹¶ä¸æ³¨ææ¯ä¸ªç»é¢çç»èã
4ãè¿è¡æé®ç²¾çµãå¨ä¸»çé¢ä¸ç¹éâæ°å»ºâè¿å ¥èæ¬ç¼è¾å¨çé¢å·¦è¾¹çå½ä»¤ç±»åééæ©é¼ æ å½ä»¤ã常ç¨çå°±æ¯å2个ãå设游æä¸äººç©ä¸ºä¸å¿åæ ï¼ãææ¯æ¬¡éåæªç©åéç¹éè§è²èªå·±ã
5ãæé®ç²¾çµï¼æé®ç²¾çµæ¯ä¸æ¬¾æ¨¡æé¼ æ é®çå¨ä½ç软件ãéè¿å¶ä½èæ¬ï¼å¯ä»¥è®©æé®ç²¾çµä»£æ¿åæï¼èªå¨æ§è¡ä¸ç³»åé¼ æ é®çå¨ä½ãæé®ç²¾çµç®åæç¨ï¼ä¸éè¦ä»»ä½ç¼ç¨ç¥è¯å°±å¯ä»¥ä½åºåè½å¼ºå¤§çèæ¬ã
luaappæä¹ä¸è½½luaå®ç½ãstandæ¯æ¬¾ååçé¨ç大éæ游ææ¹ç¼ç§»æ¤èæ¥ççåå°å»ç±»æ游ï¼è¯¥æ¸¸æä¸çluaéè¦å»luaå®ç½ä¸è½½ï¼å®è£ ä¹åå¦æçµèæ¡é¢çå¿«æ·é®ä¸è½æå¼ï¼å°±å»æ ¹ç®å½æ¾å°.exeå¯æ§è¡æ件å³å¯æå¼ã
Gtaå°å©æuaèæ¬ï¼ä½ å¯ä»¥å¨3DM游æç½ä¸ä¸è½½ï¼æè æ¯ç´æ¥æ游æçä¸ä¸è½½ï¼æå¨ç¾åº¦ä¸æç´¢ï¼æ¾å¨æçç¾åº¦ç½çä¸ï¼ä¹å¯ä»¥ä¸è½½luaèæ¬ã
ç½ç«ä¸è½½LUAå httpï¼//ï¼ctrl+F2è¾å ¥gnome-terminalæå¼ç»ç«¯ä¸è½½ubuntuçç¼è¯æ¯æsudoapt-getinstallbuild-essential注æï¼è¿éä¸ä» ä» æ¯å®è£ gccèå·²ï¼è¿å æ¬å¾å¤å ¶ä»å·¥å ·ã
é¦å è¦ä»â设置âéé¢ï¼æWiFiï¼æ 线å±åç½ï¼å ³æãç¶åå¼å¯ç§»å¨äºèç½âï¼è®©ææºè¿è¡ç§»å¨ç½ç»ï¼ç¶ååæå¼âAPPâæ¾åºæ¥èªå·±æ³è¦æ´æ°ç软件ã
luaæ件éè¦éè¿ç¬¬ä¸æ¹è½¯ä»¶æå¼ï¼å å°ç½ç«ä¸è½½ä¸ä¸ªGGæ件ï¼ä¸è½½åå®è£ 两个çæ¬ï¼ç¡¬ä»¶å éï¼è½¯ä»¶å éï¼ç¶åç¡®å®ææºå·²ç»è¢«rootï¼å¹¶è·å¾GGæéãå®æéå è¿ç¨åï¼ç¹å»æç´¢ï¼ç¶åä¾æ¬¡ç¹å»ä¸è§ç¬¦å·ã
luaä¸çexeå¨åªï¼
ä½ ä¸è½½çæ¯æºä»£ç åºè¯¥ä¸è½½äºè¿å¶æ件ï¼
ç´æ¥å°ç¾åº¦ä¸æç´¢ï¼LuaForWindows_v5.1.4-.exe
æè è¿å ¥ www.lua.org
ä¾æ¬¡åå»ä¸é¢å 项ï¼
download
左边binary ä¸é¢ç lua for windows
Download Lua_V5.1.4-.exe from Google Code
Lua5.4 源码剖析——杂谈 之 如何调试Lua源码
我们有时候写了一段Lua代码,希望能通过断点调试的码下方式看一下我们的代码在执行过程中Lua虚拟机的状态与运行流程。本篇教程我将教大家Windows与Mac环境下如何配置Lua源码调试环境。码下
Lua调试环境需要有Lua源码,码下我们从官网下载源码:
Windows下Lua源码调试环境搭建
1)下载Visual Studio,码下可自行在官网下载最新版本即可:
2)打开VIsual Studio,码下创建一个新的码下C++控制台工程,我这里以Visual Studio 版本进行举例:
项目可任意命名,本例中我们命名为TestLua:
3)工程中添加Lua源码文件:
3.1)拷贝源代码文件到项目的合约商城源码文件夹,Makefile文件可以不拷贝:
3.2)把上面这些文件导入工程:
"
.h
头文件导入:导入所有".h"后缀文件到头文件文件夹中(右键头文件->添加->现有项):
"
.c
源文件导入:导入所有".c"后缀文件到源文件的文件夹(右键源文件->添加->现有项):
4)生成exe可执行文件:
文件都导入完成了,这时候如果按"生成"或者"F5",会有如下的报错:
这是因为除了我们创建项目工程的时候自带源文件中的一个main函数以外,Lua源码中也定义了两个Main函数。他们分别对应的是luac编译工具的启动函数和lua运行工具的启动函数。要想编译通过,我们只需要根据自己要调试目的,从3个main里面把用不到的创新IM源码2个main删掉或者重命名即可。
本例中,我打算在自己的main里面实现通过dofile函数执行一个Lua文件的功能,所以我不需要启动lua和luac指令控制台,所以我把他们的main函数改名:
luac.c:把main函数改名为luac_main函数:
lua.c:把main函数改为lua_main:
上述源码中多余的2个main函数都改名了,这时候已经能编译通过并生成出exe可执行文件了。
接下来我们可以开始编写自己的main函数逻辑了,打开TestLua.cpp,输入以下内容,arm搭建源码作用是运行一个在项目目录下名字为"testlua.lua"的lua文件:
5)testlua.lua文件创建与编写:
上述代码在运行时会执行testlua.lua文件,接下来我们就需要在工程目录下创建这个将要被执行的testlua.lua文件:
打开testlua.lua文件,添加任意lua代码,这里我们简单调用print打印一句信息:
6)在Visual Studio中按“F5”开启调试,可以看到控制台被成功运行,我们的lua文件也被成功执行,打印出了信息:
7)断点调试指令OpCode:
学习过我的《Lua源码剖析 之 虚拟机》系列教程的同学应该知道Lua的指令就是各种OpCode的执行,我们可以在《lvm.c》的.net 网页源码下面这个地方加断点再按F5重新启动程序,程序在每执行一条OpCode指令就会在这处代码断点下来,这时候我们就能看到下一条要执行的OpCode是哪一条了:
在本例中的print函数最终会执行到OP_CALL这个调用分支:
Windows环境下搭建Lua源码调试环境的教程到此结束。
Mac下Lua源码调试环境搭建
因为大部分流程与上面Windows一样,所以我下面会省略一些重复步骤。
1)下载XCode,可自行在AppStore进行下载。
2)打开XCode,创建一个新的C++控制台工程,本例中命名为TestLua:
3)工程中添加Lua源码文件:
3.1)拷贝源代码文件到项目的文件夹,Makefile文件可以不拷贝:
3.2)把拷贝后的文件导入工程:
不需要区分".h"和".cpp",全选导进来就好了:
4)与Windows流程同样,把源码自带的2个main函数改名:
luac.c:把main函数改名为luac_main函数:
lua.c:把main函数改为lua_main:
把源码中多余的2个main函数都改名了,接下来同样,开始编写我们的main.cpp,打开该文件并添加代码如下代码。为了在mac下文件读取代码更简洁,在下面的Lua文件我暂时先使用文件的绝对路径,暂时把testlua.lua文件放在我的mac的桌面上进行读取:
5)在mac的桌面上创建testlua.lua文件,添加任意lua代码:
6)同理可正常运行或者加断点进行调试,这里不再赘述:
总结
本文我们学习了如何在Windows与Mac下搭建Lua源码调试环境。另外,我们上述使用的例子是通过dofile运行一个lua文件,同学们也可以试试保留lua.c里面的main函数,删掉另外两个,此时按开始调试可启动lua的即时解析控制台,在控制台里面可自行输入任意Lua代码,并可断点查看即时运行状态或最终结果,感兴趣的同学可以自行试试。
不过,尽管能调试Lua源码,但如果之前没有学习过我的那些Lua源码剖析教程,可能很多地方会看不懂,所以这里建议有空的同学还是可以先去学习一下的。
谢谢阅读。