CocosCreator JS追踪堆栈信息

2023-11-12

在开发过程中,可能有这样的需求:即使在没有报错的情况,也需要查看该函数的堆栈调用信息。

对于这样的需求,我们可以使用JS原生的console.trace来实现。

具体代码:

export let TraceArr = [];


console.trace = function () {
    var fun = arguments.callee;
    let num = 0; //追踪的堆栈深度,可自行设置
    do {
        fun = fun.arguments.callee.caller;
        if (fun && num != 0) {
            TraceArr.push(fun.toString());
        }
        num++;
        if (num >= 2 || !fun) {
            TraceArr.push("\n--------------------------\n");
            break;
        }
    } while (true);
}

但是,以上方法不能在原生环境(android,ios)中使用,会报以下的错误:

 

所以,CocosCreator应该使用其他的实现方式,这个方法简便:

export let TraceArr = [];
function saveStackTrace() {
    TraceArr.push(+"-" + new Error().stack);
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CocosCreator JS追踪堆栈信息 的相关文章

随机推荐

  • ComSec HW6 Hash

    11 1 安全 Hash 函数需要具有那些特性 H能用于任何大小的数据分组 H产生定长输出 对任意给定的x H x 要相对易于计算 使得软硬件实现都实际可行 单向性 对任意给定的码y 寻求x使得H x y在计算上不可行 弱抗碰撞性 任意给定
  • Flink学习笔记(3)——Flink部署

    目录 一 Flink 部署 1 1 快速启动一个集群 1 1 1 环境配置 1 1 2 集群启动 1 1 3 向集群提交作业 1 2 部署模式 1 2 1 会话模式 1 2 2 单作业模式 Per Job Mode 1 2 3 应用模式 A
  • 什么是FPGA?为什么FPGA会如此重要?

    CPU GPU FPGA三者能力相加就是芯片的未来 很多粉丝问我 嵌入式方向中的FPGA怎么样 收入如何 前言 这个时候 一定会有抬杠青年说 我见过国内生产的FPGA芯片 还用过呢 通常遇到这一类质疑声 我一般都会说 你是对的 后来 要知道
  • Ubuntu firefox 上无法联网

    问题描述1 firefox 登录百度失败 解决方案 打开Firefox 点击右上角三条杠 进入 选项 点击 高级 切换到 网络 点击 连接设置 设置为 不使用代理 即可 如果还没能解决问题 请接着往下看 尝试ping www baidu c
  • Linux第三周作业

    Linux第三周作业 第三周作业 一 基础班 1 显示 etc目录下 以非字母开头 后面跟了一个字母以及其它任意长度任意字符的文件或目录 2 复制 etc目录下所有以p开头 以非数字结尾的文件或目录到 tmp mytest1目录中 3 将
  • impala查询转义问题

    select REGEXP REPLACE 佰分贰拾 深圳 品牌管理有限公司 然后 SELECT vendor full name REGEXP REPLACE vendor full name FROM odsmdmdata sms ve
  • 面试 - Redis 多路复用原理

    大家都知道redis是单进程而且快 那你知道为什么吗 面试中我只能答出多路复用 但具体的原理又不知道了 很尴尬 不过也很欣慰 从一次又一次的失败中总结经验弥补不足 事实上有一定经验的人知识如果不够深已经不是什么问题了 不过还是得补下这个课
  • Python 图像处理之 JPEG 格式

    Python 图像处理之 JPEG 格式 JPEG Joint Photographic Experts Group 是一种常见的图像压缩格式 在数字图像处理 图像传输等领域得到广泛应用 Python 内置的 PIL 库提供了对 JPEG
  • Qt在软件运行过程中改变一个控件的样式

    需求 在软件运行过程中改变一个控件的样式 思路 使用qss的属性选择器 在qss文件中分别对控件的某个属性的不同属性值设置样式 当需要修改控件样式时 修改控件属性的值 并重新加载该控件的样式表 如何修改控件属性的值 可以先了解一下Qt的属性
  • IntelliJ IDEA插件系列:四大炫酷神器你值得拥有

    拥有了这四款插件 你就比别人领先一步 你的界面独一无二 1 Mario Progress Bar 这是基于 IJ 的 IDE 的 Mario 进度条 基于 Dmitry Batkovitch 的 Nyan 进度条 它展示了马里奥 Mario
  • 软件测试人员该学习 Python 的七个理由

    对于一个软件测试工程师来说 选哪一门语言来入手编程一直是件非常纠结的事情 当然立志做一辈子功能测试的人除外 值得庆幸的是 专门介绍软件 工具及网站服务的技术Blog上CarlCheo绘制了一张图表 告诉你该怎么开始伟大的码农航道 大多数好的
  • (六)练习:饮料自动售货机

    1 找出所有的原因 输入 并编号 1 投币5角 2 投币1元 3 按下 橙汁 按钮 4 按下 啤酒 按钮 2 找出所有的结果 输出 并编号 注意 不能写购买成功 饮料送出 因为若买橙汁 则应该送出橙汁 送出啤酒是不对的 若只写找零 则在画因
  • mybatis:mybatis再总结

    1 什么是mybatis 优点 缺点 适用场合 与Hibernate的对比 https www cnblogs com zhai1997 p 12527689 html 2 和 的区别是什么 是预编译处理 是字符串替换 将传入的数据都当成一
  • Pytorch基础学习(第四章-Pytorch损失优化)

    课程一览表 目录 一 权值初始化 1 梯度消失与爆炸 2 Xavier方法与kaiming方法
  • unity 设置layer 使碰撞器不碰撞

    做游戏时 有时候需要让同一个地图的两个敌人不互相碰撞 但是两个人都有碰撞器 能站在地上 这个功能是如何实现的呢 答案就是设置layer 当点击Hierarchy窗口中的某个对象时 在Inspector窗口就可以看见Layer选项 如图 你可
  • Lua 15分钟快速上手(下)

    本系列相关文章 Flutter 热更新及动态UI生成 Lua 15分钟快速上手 上 Lua 15分钟快速上手 下 Lua与C语言的互相调用 LuaDardo中Dart与Lua的相互调用 进阶语法篇 迭代器 迭代器 iterator 是一种可
  • SpringMVC路径匹配中使用通配符

    SpringMVC路径匹配中使用通配符 RequestMapping中指定的路径也可以使用通配符 表示任意字符 如下的处理器方法可以映射请求 antstyle a 可以映射请求 antstyle b 但是它不能映射请求请求 antstyle
  • 创建或打开c++浏览数据库文件时发生错误,IntelliSense和浏览信息将不能用于C++项目。

    在用vs新建项目 出现这一类的错误 常出现在vs2010中 在使用VC2010的时候出现问题如下 创建或打开C 浏览数据库文件XXXXXXX stdf时发生错误 IntelliSense和浏览信息将不能用于C 项目 请确保已安装Micros
  • 多款知名App宣布停止更新,安卓用户大悲

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 5 分钟 来自 电脑报 ID CQCPCW 开屏广告早已入侵我们的生活 如同狗皮膏药般存在 人人都在骂 却屡禁不止 甚至还被玩出各种新花样 比如关闭按钮小如蝼蚁 伪装
  • CocosCreator JS追踪堆栈信息

    在开发过程中 可能有这样的需求 即使在没有报错的情况 也需要查看该函数的堆栈调用信息 对于这样的需求 我们可以使用JS原生的console trace来实现 具体代码 export let TraceArr console trace fu