Lua学习笔记:在Visual Studio中调试Lua源码和打断点

news2024/11/26 12:34:27
前言
本篇在讲什么

调试Lua源码
本篇需要什么

Lua语法有简单认知
依赖Visual Studio工具

本篇的特色

具有全流程的图文教学
重实践,轻理论,快速上手
提供全流程的源码内容


★提高阅读体验★

👉 ♠ 一级标题 👈

👉 ♥ 二级标题 👈

👉 ♣ 三级标题 👈

👉 ♦ 四级标题 👈


目录

  • ♠ 前言
  • ♠ 新建C++控制台应用
  • ♠ 下载Lua源码
  • ♠ 引入Lua源码
  • ♠ 添加预处理器定义标记
  • ♠ 补充lua脚本
  • ♠ 运行和设置断点
  • ♠ 推送
  • ♠ 结语


♠ 前言

对Lua底层一些实现有些疑问,直接看源码思路并不是很清晰,所以想把源码跑起来看一看堆栈,打一下断点


♠ 新建C++控制台应用

我们需要在VS内新建一个C++的控制台应用

在这里插入图片描述


♠ 下载Lua源码

lua官网:传送门

移步到Lua的官网,根据下图的指示,选择需要的Lua版本去下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解压完成后是下图这个样子的

在这里插入图片描述


♠ 引入Lua源码

首先将解压的Lua源码下的src目录全部拷贝到刚才新建的控制台应用目录下,src下是所有Lua相关的头文件和c文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在解决方案下引入头文件源文件

在这里插入图片描述

在这里插入图片描述


♠ 添加预处理器定义标记

右键解决方案内的项目,属性页内的C/C++下的预处理器,添加_CRT_SECURE_NO_DEPRECATE标记,不然生成的时候会报错

在这里插入图片描述


♠ 补充lua脚本

在控制台应用的目录下新建测试脚本test.lua,并添加部分lua代码,如下图所示

在这里插入图片描述
在这里插入图片描述


♠ 运行和设置断点

首先我们并不需要源码中的main入口,所以吧luac.clua.c中的main都注释了就可以了

在这里插入图片描述
在这里插入图片描述

在我们自己的脚本内引入lua的头文件,并新建lua的虚拟机去加载lua脚本

在这里插入图片描述

执行后的效果如下图所示

在这里插入图片描述

同时我们在对应的逻辑里添加断点已经可以断到了

在这里插入图片描述


♠ 推送

  • Github
https://github.com/KingSun5

♠ 结语

若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

👉 本文属于原创文章,转载请评论留言,并在转载文章头部著名作者出处👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#中的方法

引言 在C#编程语言中,方法是一种封装了一系列可执行代码的重要构建块。通过方法,我们可以将代码逻辑进行模块化和复用,提高代码的可读性和可维护性。本文将深入探讨C#中的方法的定义、参数传递、返回值、重载、递归等方面的知识,…

【Hadoop】HDFS API 操作大全

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助&#x1…

Vue3 Ajax(axios)异步

文章目录 Vue3 Ajax(axios)异步1. 基础1.1 安装Ajax1.2 使用方法1.3 浏览器支持情况 2. GET方法2.1 参数传递2.2 实例 3. POST方法4. 执行多个并发请求5. axios API5.1 传递配置创建请求5.2 请求方法的别名5.3 并发5.4 创建实例5.5 实例方法5.6 请求配置项5.7 响应结构5.8 配置…

【配代码演示】Cookie和Session的区别

一、共同之处: cookie和session都是用来跟踪浏览器用户身份的会话方式。 二、工作原理: 1.Cookie的工作原理 (1)浏览器端第一次发送请求到服务器端 (2)服务器端创建Cookie,该Cookie中包含用户的…

控制台日志打印console的封装,加入美化与打印开关

控制台日志打印console的封装,加入美化与打印开关 为什么要写这个? 封装这个控制台日志打印工具,主要是在项目中自己做的SDK需要提供给其他开发人员使用,加入了日志美化和打印打开,方便了开发人员查找SDK中的日志&am…

以神龙出行小程序为例,说一些网站技术

注册和登录功能: 用户注册和登录可以使用手机号验证、第三方登录等方式来实现。这需要与后台服务器进行数据交互,并进行身份验证。 数据存储和管理: 用户的个人信息和常用地址需要进行存储和管理。这可以通过数据库来实现,如关系…

【八大经典排序算法】冒泡排序

【八大经典排序算法】冒泡排序 一、概述二、思路解读三、代码实现四、优化 一、概述 冒泡排序由于其简单和易于理解,使其成为初学者学习排序算法的首选,也是初学者接触到的第一个排序算法。其原理是通过重复交换相邻的元素来将最大的元素逐步“冒泡”到…

Python数据库编程:连接、操作和管理数据库

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 Python作为一门多用途的…

前端screenfull实现界面全屏展示功能

还是先引入依赖 我们要先执行 npm config set registry https://registry.npmjs.org/将本地npm registry地址设置为官方的npm registry地址 不然这个东西安装会有点问题 然后我们执行命令安装 npm install screenfull安装完之后 我们终端执行一下 npm config delete registr…

华为云HECS云服务器docker环境下安装redis

当前有个华为云HECS云服务器,已经安装了docker环境,准备下docker环境下安装redis。 一、HECS云服务器安装docker 登录华为HECS云服务器,安装docker环境。 安装docker参考如下文章: 华为云HECS安装docker并安装mysql-CSDN博客 …

构建个人图床云盘—EasyImage的简单部署及远程访问配置

文章目录 1.前言2. EasyImage网站搭建2.1. EasyImage下载和安装2.2. EasyImage网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar内网穿透本地设置 4. 公网访问测试5. 结语 1.前言 一个好的图床,是网站或者文章图片能稳定显示的关键&…

ros---服务端和客户端

服务模型&#xff1a; 想对于发布订阅模型的区别&#xff1a;请求一次才会接收一次&#xff0c;而不是不断的发布。 自定义服务数据 1.定义srv文件 2.在package.xml中添加功能包依赖 <build_depend>message_generation</build_depend> <exec_depend>mess…

商业大厦为什么要烟感监控?一篇看懂

烟感监控在现代商业大厦的安全体系中扮演着至关重要的角色。随着城市化的不断发展和商业大厦的不断增多&#xff0c;建筑物内的火灾风险也相应增加。 因此&#xff0c;采取有效的烟感监控措施&#xff0c;以及建立快速响应火警的机制&#xff0c;对于保护人员生命安全和财产安全…

Java之String类

作者简介&#xff1a; zoro-1&#xff0c;目前大二&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; Java之String类 String的构造String底层String之间…

【计算机毕业设计】基于SpringBoot+Vue的流浪猫狗救助救援网站的设计与实现

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题…

讨论问题--数据类型、数组、传值/址API函数等

前言 数据类型是编程语言中用于表示数据的分类。常见的数据类型包括整数、浮点数、字符串、布尔值等。数据类型决定了变量能存储的值的种类和范围。 数组是一种存储多个相同类型数据的数据结构。它通过索引来访问并操作其中的元素。数组在内存中是连续存储的&#xff0c;可以…

前后端分离vue简介

vue简介 vue是一个渐进式js框架&#xff0c;用于构建用户界面&#xff0c;其主要特点是易学易用、轻量、灵活和高效。Vue.js由前Google工程师尤雨溪&#xff08; Evan You&#xff09;在2014年创建&#xff0c;它的核心库只关注视图层&#xff0c;是一款非常优秀的MVVM框架&…

大数据驱动业务增长:数据分析和洞察力的新纪元

文章目录 大数据的崛起大数据的特点大数据技术 大数据驱动业务增长1. 洞察力和决策支持2. 个性化营销3. 风险管理4. 产品创新 大数据分析的新纪元1. 云计算和大数据示例代码&#xff1a;使用AWS的Elastic MapReduce&#xff08;EMR&#xff09;进行大数据分析。 2. 人工智能和机…

通过内网穿透实现远程连接群晖Drive,轻松实现异地访问群晖NAS

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

一些文档上传网站实现原理的分析

背景说明 很多网站都有文档上传功能&#xff0c;如百度文库&#xff0c;原创力&#xff0c;当然也有宇宙闻名的CSDN小猴子网站。如果我们要批量大规模上传文档&#xff0c;手工方式比较低效。自动上传的话&#xff0c;又缺乏网站的API&#xff0c;那只能自己分析上传流程&…