LuaJIT源码分析(一)搭建调试环境 众所周知,LuaJIT是一个针对lua编程语言的即时编译器(JIT,Just-In-Time Compiler),它执行lua代码的速度相当的快。而网络上关于LuaJIT源码的资料相当地少,只能自己开一个坑,从头开始阅读了。万事开头难。想要分析源码,第一步肯定是要先搭建一个可以调试源码的环境出来。然而,就连这个第一步,网络上可参考的内容也很有限,大概是Lu
lua源码学习笔记1. lua1) 基本数据类型2)lua是动态语言,提供了虚拟机;最终代码是以字节码的形式由解释器执行3)闭包4) lua和C的相互调用5) 协程6) 元表2. lua数据类型分析1) string2) userdata3) table4) 总结 1. lua1) 基本数据类型nil,number,string,userdata,function,thread,boolean,
转载 2024-09-29 20:07:13
482阅读
1.全局环境_GLua将所有的全局变量保存在一个常规的table中,这个table被称为全局环境,并且将这个table保存在一个全局变量_G中,也就是说在脚本中可以用_G获取这个全局table,并且_G._G 和 _G是等价的,在默认情况,Lua在全局环境_G中添加了标准库比如math、函数比如pairs、print等2.局部环境_ENV编译器在编译所有代码段(chunk)前,在外层创建局部变量_
转载 2024-09-20 15:13:27
109阅读
目录一、Lua注册表 - 实现机制l_registry二、Lua注册表 - 初始化init_registry三、Lua注册表 - 设置值lua_setfield四、Lua注册表 - 获取值lua_getfieldLua通过实现全局的注册表,来管理全局变量、C API扩展库的加载等信息。注册表主要通过Table的数据结构进行管理,所以注册表是一个多维数组的结构。本章我们主要讲解Lua的注册表的整体操
转载 2024-03-28 21:46:41
153阅读
这里只是列举了lua当中用到的c 语言的知识1. lua_KFunction这个类似c#中的委托  类型是lua_KFunction ,参数是后面三个比如 定义一个 lua_KFunction  func1,就等于  声明了一个函数   int  *func1 (lua_State,int,lua_KContext)2. char**ag
转载 2024-03-22 15:49:22
157阅读
 好久没有在网上留言了。。。 背景介绍因为工作的需要,后台svr要能够动态修改更新,使用C当然没有问题,问题就在于修改源码后,需要重启服务。所以就想到在C里能够嵌入一种脚本,最好是和C无缝结合的。因此就想到使用到LUALUA的大名圈内人士应该早有耳闻,只不过一直没有机会接触。机缘巧合,有幸一见。 俗话说得好,耳闻不如一见。LUA使用起来还是很简单的,语法和普通的脚
转载 2024-03-31 12:07:14
73阅读
版本整理日期:2011/3/27对lmathlib.c文件中的函数进行跟调。函数是那个不重要,这里选取math_abs/* lmathlib.c 取出一个TValue,转成整型,然后fabs处理。TValue可能是字符串,也可能就是数字。 luaL_checknumber的行为是必返回一个number值 lua_pushnumber的行为是把结果进行压栈处理,具体怎么处理还不知道 ret
转载 2024-04-09 15:05:15
45阅读
【zz】http://mobile.51cto.com/iphone-286254.htm 关于LUA源代码分析学习教程是本文要介绍的内容,主要是来学习lua中关于源码的内容,具体内容来看本文详解。 原文是英文版的,利用一点时间翻译成中文的。希望bina大虾指点一二。 1. ldebug.c - 调试接口:包含访问调试钩子的函数(lua_sethook/lua_gethook/lua_g
    一步步调试,在lparser.c文件中luaY_parser函数是语法分析的重点函数,词法分析也是在这个过程中调用的。在这个过程中,用到一些数据结构,下面会详细说。   Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) { struct LexState lexstate; str
转载 2024-04-10 20:17:31
54阅读
    lua中可以这样赋值:         local a = 0;         local b = 1;    
转载 2024-04-24 16:27:25
28阅读
先来看lua中值的表示方式。 Java代码 #define TValuefields Value value; int tt typedef struct lua_TValue { TValuefields; } TValue; 其中tt表示类型,value也就是lua中对象的表示。 Java代码 typedef union { GCObjec
转载 2024-08-20 13:38:53
18阅读
           我们在使用lua的时候一定觉得这门语言很高级,什么都不用去处理而且速度很快,超过了一般的脚本语言,这是因为其实lua内部是由c来管理内存的分配和释放的,用起来有点像java的垃圾回收器一样,但完全不是一个东西,看过lua源码的人都知道,它是自己建立了一套lua内存管理机制的,由
开发工具与关键技术:VS, ASP.NET MVC 作者:谭威 撰写时间:2019年5月1日 在我讲解修改代码之前,我得先声明我自定义的ReturnJsonVo和AESEncryptHelper这两个类,ReturnJsonVo这个类中有State(状态)、Code(状态码)、Text(文本)、Object(附加数据)这四个字段;AESEncryptHelper这个类就是一个用来加密的方法,了解一
  凡是尝试做过内核分析的人都知道,Linux的内核组织结构虽然非常有条理,但是,它毕竟是众人合作的结果,在阅读代码的时候要将各个部分结合起来,确实是件非常困难的事情。因为在内核中的代码层次结构肯定分多个层次,那么对一个函数的分析,肯定会涉及到多个函数,而每一个函数可能又有多层的调用,一层层下来,直接在代码文件中查找那些函数肯定会让你失去耐心和兴趣。 俗话说:“工欲善其事,必先利其器”。
从github上下载源码之后(至于如何下载源码,请浏览系列教程前面的部分),浏览目录结构可以看到,skynet的源码结构是这样的有些源码是c语言写的,主要是底层的实现,为了性能考虑的。而有些是lua写的,比较偏向于游戏业务方面。3rd:存放第三方的代码,有lua和jemalloc等,其中jemalloc是一个内存分配的库,用来提高malloc的性能,但是如果你打开jemalloc目录的话会发现里面
Visual Studio 2017编译Lua源代码准备工作需要带有C++开发组件的Visual Studio需要Lua源代码(​​下载页面​​)下载得到的Lua源代码是一个tar.gz格式的压缩包,提取出其中的 src 文件夹,这个文件夹中包含了 Lua解释器 、 Lua编译器 和 Lua链接库 的源代码。 编译Lua链接库(lua.dll或lua.lib) 打开Visual Stud
转载 2022-11-29 20:07:27
353阅读
魔兽争霸自动地图元件的绘制原理序:本文主要介绍一种简单高效的自动地图元件的绘制方法,基本的原理是基于CodeProject的作者为Colin Vella的一篇文章:http://www.codeproject.com/KB/game/Autotiles_Algorithm.aspx#_comments 该文章介绍的方法非常简单,而且很高效。本文会先讲述此方法,然后在此方法的基础
基本使用源码分析 基本使用安装 pip3 install flask_sqlalchemy 我们在使用时候,会执行如下的代码db = SQLAlchemy() app = Flask(__name__) db.init_app(app)然后modelsfrom sqlalchemy.ext.declarative import declarative_base from sqlalchemy
LuaDoc是一个Lua源代码文件文档生成工具。项目地址:http://luadoc.luaforge.net当前版本:3.0.1        LuaDoc需要依赖LuaFileSystem和LuaLogging,我们可以直接下载Lua for Windows(http://code.google.com/p/luaforwindows/),这是带有LuaDoc的整合包,我们可以
原创 2021-08-30 10:16:14
784阅读
魔兽争霸1.20E本来是一个很稳定的版本,但是国人似乎不热衷于开发游戏而更青睐于研发外挂,所以最先出现了dota“互通图”,这种技术比较低端,自己修改J文件,在HF建主挂机2天,让大家几乎都下载他的盗版图。后来玩家知道了不和进去需要下载地图的主机玩,这些人又发现了bcc校验,一中略显低端的异或校验,再简单的绕过平台地图检测,他们发现竟可以肆意修改J文件并且进别人主机不需要读图。 这里要说一下暴雪
  • 1
  • 2
  • 3
  • 4
  • 5