ccc 自己的游戏能否拿到 jsc 对应的 js 来排查问题

release 版拿到的错误是堆栈是混淆过的变量。

如: t[e] is undefined

有的时候能够猜到是什么问题,但有的时候定位不到。

发布 web 版本,可以拿到混淆过的 js 文件,但不确定是否一致。

有没有办法拿到对应的 js 文件帮助排查问题?

@panda

用 debug 来 build 就好了呀,可以看到 js 脚本的

线上的版本,我上报了 spidermonkey 输出的错误给服务端存下来,但是这个信息是混淆过的。因为是外放的版本,所以没有办法发布 debug 版,而且错误也是偶现的。现在这样有一些帮助,就是堆栈的方法名是正确的,如果能够拿到 js 文件,就更好排查问题了。

那确实是没办法了 web 端混淆后跟 jsc 是不同的

同问,那假如是native,android或者ios,可以根据排查出问题吗,现在输出的也是混淆过的,很难知道具体文件错误位置

编译的时候可以生成一个map文件,但是没有搞懂怎么用。应该是可以的,mozilla网站上有使用方法,就是没有耐心仔细看。

问下,生成在哪个目录下

src下,和jsc在一个目录下。注意不要打包发布出去了。。它里边有所有源码,虽然有点乱。
问题是,这个map文件怎么用嘛?

没看到,文件名是什么

构建的时候,要选择这个"Source Maps",构建后生成“project.js.map”。
期待您的研究成果哦。

只有web,才会有这个文件吧。native纵使勾选了,也没有这个文件的

  1. 修改C++,收集堆栈的 行、列
  2. 编译jsc的时候,顺便编译一个web版的,把js文件存下来
  3. jsc中收集到的行列,在js文件中找,99%的情况是能够对应到确切的位置
2赞

jsc对应的行列,不是二进制的行列吗。js文件的行列能对能上?

可以的,百试不爽

行列可以对应上。假如我有一个变量vartest,上报了第三行,vartest is null。然后这一行有五六个这样的变量或者更多,这样的话,是只能一个一个的凭经验排查吗

明白你说的意思了。在c++层添加多一个对应的列变量column,对吧

:slightly_smiling:

你的方法太好了,正愁对不上号!
是编一个web DeskTop还是web mobile呢?
或者建议官方保留原始js文件(project.年-月-日-时-分-秒.js)放入特定目录下去,就方便了。

web mobile