1.Lua5.4 源码剖析——杂谈 之 如何调试Lua源码
2.vs2019怎么运行代码
3.github论坛是源码论坛什么
4.VS2019安装教程(超详细)新手必码
5.SQL Server 2019 CU5带来了哪些新功能和改进?
6.2019 再聊移动端 300ms 延迟及 fastClick 原理解析
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里面把用不到的2个main删掉或者重命名即可。
本例中,我打算在自己的main里面实现通过dofile函数执行一个Lua文件的功能,所以我不需要启动lua和luac指令控制台,所以我把他们的main函数改名:
luac.c:把main函数改名为luac_main函数:
lua.c:把main函数改为lua_main:
上述源码中多余的2个main函数都改名了,这时候已经能编译通过并生成出exe可执行文件了。
接下来我们可以开始编写自己的main函数逻辑了,打开TestLua.cpp,输入以下内容,作用是ceph源码集群运行一个在项目目录下名字为"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》的下面这个地方加断点再按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文件放在我的mycat指标源码mac的桌面上进行读取:
5)在mac的桌面上创建testlua.lua文件,添加任意lua代码:
6)同理可正常运行或者加断点进行调试,这里不再赘述:
总结
本文我们学习了如何在Windows与Mac下搭建Lua源码调试环境。另外,我们上述使用的例子是通过dofile运行一个lua文件,同学们也可以试试保留lua.c里面的main函数,删掉另外两个,此时按开始调试可启动lua的即时解析控制台,在控制台里面可自行输入任意Lua代码,并可断点查看即时运行状态或最终结果,感兴趣的同学可以自行试试。
不过,尽管能调试Lua源码,但如果之前没有学习过我的那些Lua源码剖析教程,可能很多地方会看不懂,所以这里建议有空的同学还是可以先去学习一下的。
谢谢阅读。
vs怎么运行代码
1、首先,打开C语言编辑器工具,然后在该工具中编写程序的源代码,然后进入下一步。
2、其次,单击“编译”选项,再单击“组建”选项,pycharm导出源码再单击“执行”按钮,然后进入下一步。
3、接着,完成上述步骤后,单击Enter,然后进入下一步。
4、然后,完成上述步骤后,单击另存为选项,将文件保存到可以找到的文件夹,然后进入下一步。
5、随后,完成上述步骤后,打开保存在桌面上的文件夹,其中有一个Bebug文件夹,然后进入下一步。
6、最后,完成上述步骤后,打开Bebug文件夹,有一个扩展名为.exe的文件,编译完成,glide手写源码这样,问题就解决了。
github论坛是什么
github论坛是什么?
GitHub,Inc.是一家总部位于美国的全球公司,提供使用Git进行软件开发和版本控制的托管。
自年以来,它一直是Microsoft的子公司。它提供Git 的分布式版本控制和源代码管理功能,以及其自己的功能。它为每个项目提供访问控制和多种协作功能,例如错误跟踪,功能请求,任务管理和Wiki。
GitHub免费提供其基本服务。其更高级的专业和企业服务是商业性的。免费的GitHub帐户通常用于托管开源项目。截至年1月,GitHub为所有计划提供了无限的私有存储库,包括免费帐户,但每个存储库免费最多允许三个协作者。从年4月日开始,免费计划允许无限制的合作者,但将私人存储库限制为每月2,分钟行动。截至年1月,GitHub报告拥有超过万用户 和超过1亿个存储库,使其成为世界上最大的源代码宿主。
VS安装教程(超详细)新手必码
对于学习C/C++语言,Dev C++和vc6.0已不再是最优选择,因其更新问题和年代久远。因此,推荐使用VS及以后的版本,本文将详细介绍VS的安装步骤。
首先,访问VS官网的社区版下载页面(community ),点击下载。然后,双击VS.exe开始安装。安装时,选择主界面的安装选项,默认安装在C盘(建议保持默认,除非C盘存储空间紧张),并确保选择中文简体语言包。安装过程中请耐心等待,因为安装时间可能会稍长。
安装完毕后,就可以开始使用VS。打开软件,通过点击"创建新项目",选择"空项目",然后配置新项目。接下来,右键点击源文件,添加"新建项",创建.cpp文件,即可开始编程。需要注意的是,编程时务必保持英文输入环境。
本文仅提供了一个基础的使用教程,如果你在创建项目或编程过程中遇到问题,欢迎提问。我们的学习资源包括项目视频、源码等,可以在主页找到群组进行交流,群号在主页公布。祝你在学习C/C++的道路上取得进步!
SQL Server CU5带来了哪些新功能和改进?
SQL Server 焕然一新:CU5累积更新带来重大突破 自SQL Server 全面登陆以来,微软持续创新,引领数据处理新纪元。近期,我们迎来了期待已久的SQL Server Cumulative Update (CU5)。这次更新不仅增强了原有的大数据集群(BDC),更在多个关键领域实现了显著扩展。 CU5焦点:BDC功能升级 CU5的亮点在于,BDC现在支持在红帽OpenShift Kubernetes平台上无缝部署,这意味着企业用户可以在Linux容器中更高效地利用SQL Server。更重要的是,运行在BDC中的应用程序现在以非根用户身份启动,提升了安全性和隔离性,而对先前部署的BDC,这一改变是兼容的,无需额外操作。 同时,CU5允许在同一活动目录域中部署多个BDC,为大型企业提供了更大的灵活性。数据虚拟化体验也得到了丰富,sp_data_source_objects和sp_data_source_columns两个存储过程的引入,让数据管理更为直观和高效。 开源互联的增强 开放源码社区的力量得到了深化,CU5中Apache Spark SQL连接器得到了加强,以Apache V2许可开放,推动了SQL Server与Azure SQL Connector之间的无缝协作。开发者们将能期待更多连接器功能的更新,助力企业级数据处理。 总结来说,SQL Server CU5是一个里程碑式的更新,它不仅提升了数据处理能力,还加强了与开源生态的连接,让数据驱动的决策更加智能和灵活。欲了解更多详细信息,请关注我们的官方博客,那里将有深入的剖析和实操教程。 标签: SQL Server , Kubernetes, OpenShift, 数据虚拟化再聊移动端 ms 延迟及 fastClick 原理解析
移动端ms延迟及fastClick原理解析
移动端ms延迟问题源于浏览器为识别双击手势而等待的时间,最初在桌面端网页兴起时,为解决移动端适配和提高用户体验,移动端浏览器引入了双击缩放手势。然而,这种设计导致了移动端点击操作的延迟,延迟时间从ms到ms不等。
谷歌在移动版Chrome发布后,从Chrome 版本开始,对于移动端优化的网站,即使禁用了缩放功能,也解决了这一延迟问题。之后,Firefox、IE/Edge等浏览器也相继修复了此BUG。
解决移动端ms延迟问题的方法包括禁用缩放或在代码中添加特定处理。在Android WebView和iOS WebView中,处理方式与移动端浏览器一致,但iOS WebView中UIWebView与WKWebView的使用和特性也有所不同。UIWebView始终存在ms延迟问题,而WKWebView在iOS 9.3时解决了此问题。
fastClick库的原理在于在touchend事件发生时,阻止默认事件触发,然后通过创建MouseEvents并触发click事件来解决延迟问题。此外,fastClick在PC端不适用,需要通过notNeeded函数判断设备类型。
fastClick的使用需谨慎,特别是在iOS 9.3以上的WKWebView中,引入fastClick可能会带来额外风险和不必要的文件请求。适合自己的才是最好的,因此,在仅需对iOS 9.3以上WKWebView做适配的情况下,无需使用fastClick。
fastClick在解决移动端ms延迟问题上的贡献值得肯定,但是否继续使用需根据实际业务需求考虑。阅读优秀的源码可以提升编程审美和能力,但同时也需对其不足之处保持警惕。
2024-12-24 10:08
2024-12-24 09:52
2024-12-24 09:27
2024-12-24 08:25
2024-12-24 08:17
2024-12-24 07:31