LUA 调用c#关于c#报错时lua调用堆栈的监听

static string GetLuaStackTrace(IntPtr L)

{

// 将 'debug' 表压入栈顶

xlua_getglobal(L, "debug");

// 获取 'debug.traceback' 函数

lua_pushstring(L, "traceback");

xlua_pgettable(L, -2);

// 移除 'debug' 表,现在 'traceback' 函数位于栈顶

lua_remove(L, -2);

// 将两个参数压入栈顶(第一个参数 message,第二个参数 level)

lua_pushstring(L, "");

lua_pushnumber(L, 2); // 注意这里我们使用 lua_pushnumber 来推送整数

// 调用 traceback 函数,期望 1 个返回值

lua_pcall(L, 2, 1, 0);

// 把返回的堆栈跟踪信息转换为 C# 字符串

string trace = lua_tostring(L, -1);

// 弹出栈顶的堆栈跟踪信息

lua_pop(L, 1);

复制代码
 // 返回堆栈跟踪信息
 return trace;

}

相关推荐
沫璃染墨11 分钟前
《Linux工程实践篇(二):线程池实战——从线程安全单例到完整源码实现》
linux·开发语言·c++·单例模式·设计模式·系统架构
泡海椒25 分钟前
JQuick-Excel 多字段 TRANSFORM:让当前行字段、JContext 与展示列各归其位
开发语言·python·excel
JPower_mr.g28 分钟前
SmartCall 音色管理技术解析:基于 SPI 的可扩展音色注册架构
java·开发语言·人工智能·ai·架构·开源
淡海水35 分钟前
02-04-原理篇-GC Roots与对象图遍历
算法·unity·c#·图·gc·遍历·roots
源图客42 分钟前
浏览器开发者工具使用
开发语言·php
念何架构之路1 小时前
go-grpc核心抽象接口
开发语言·后端·golang
kimnoic1 小时前
Python操作Git命令的详细指南
开发语言·python
kimnoic1 小时前
Python数据库sqlite3图文实例详解
开发语言·python
老王爱玩车2 小时前
文件操作从打开到缓冲区
c语言·开发语言·学习
SunnyDays10112 小时前
Java 合并 PDF 文件:完整合并、指定页面合并与流合并
java·开发语言·合并pdf