ue4支持arm linux吗,【填坑】UE4&Android 想调试下怎么就这么难呢

手游偶尔会出现崩溃,就起了边测试边调试的心,实践起来没想象中那么顺利。

参见《使用Nsight Tegra联机调试UE4 Android端游戏》。

问题描述

好几个手机,直接运行Debug几乎都到这一步就戛然而止了。

36f2287f2374

此时游戏是已经安装成功了的,比较特殊的是在【OPPO OPPO A57 Android 6.0.1 (API 23) 】上除了安装游戏外,还安装了一个东西,其它手机均未有安装。

但是网上几乎找不到“com.nvidia.pentak.debugproxy”相关的任何信息。

36f2287f2374

既然游戏已安装,就尝试手动启动游戏,再附加到进程。

会首先“Pulling device files...”

36f2287f2374

接下来,【samsung SM-G9280 Android 7.0 (API 24) 】上会出现这个错误信息。

个人感觉跟是否Root应该关系不大,好像是三星对run-as的支持有问题。

36f2287f2374

【LGE Nexus 5X Android 7.1.1 (API 25) 】【QiKU 8692-A00 Android 6.0.1 (API 23)】【Meizu PRO 5 Android 5.1 (API 22)】上就都卡在了“Starting GDB debugger...”处。

36f2287f2374

此时【输出】窗口的打印信息为(除了warning详情不一样其它相似):

Nsight Tegra: Starting debug server on device...

Nsight Tegra: Starting C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\NVIDIA\NSIGHT TEGRA\3.4\Debuggers\arm\gdb.exe...

Nsight Tegra: Running script E:\Develop\Shooter\Client\Intermediate\Android\APK\libs\armeabi-v7a\gdb.setup...

Nsight Tegra: Connecting to remote device...

Loaded 'linker'

......

# Loaded 一些文件

......

warning: Could not load shared library symbols for 15 libraries, e.g. /system/framework/arm/boot.oat.

Use the "info sharedlibrary" command to see the complete listing.

Do you need "set solib-search-path" or "set sysroot"?

warning: Could not load shared library symbols for 3 libraries, e.g. /data/dalvik-cache/arm/system@framework@tcmclient.jar@classes.dex.

warning: .dynamic section for "C:\Users\Administrator\AppData\Local\Temp\Nsight_Tegra_devices\860BCNP223J3\symbols32\system\lib\libgnustl_shared.so" is not at the expected address (wrong library or version mismatch?)

而【NVIDIA】窗口会陆续出现错误提示,最终还是失败。

36f2287f2374

看了“%AppData%\NVIDIA Corporation\Nsight Tegra\Logs”下的日志,感觉是否和“com.nvidia.pentak.debugproxy”有点关系,其它也还是没啥头绪。

2017-08-17 11:55:09.1209|INFO|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] command: "13-target-select remote :2020"

......

# stdout 了一些文件

......

2017-08-17 11:55:29.1331|ERROR|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] has not responded to "-target-select remote :2020" command in 20000 ms. The command is timed-out.

2017-08-17 11:55:29.1331|INFO|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] command: "14-thread-list-ids"

2017-08-17 11:55:49.1332|ERROR|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] has not responded to "-thread-list-ids" command in 20000 ms. The command is timed-out.

2017-08-17 11:55:49.1332|INFO|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] command: "15-exec-continue"

2017-08-17 11:56:09.1474|ERROR|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] has not responded to "-exec-continue" command in 20000 ms. The command is timed-out.

2017-08-17 11:56:09.1474|INFO|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] command: "-exec-interrupt"

2017-08-17 11:56:09.1474|INFO|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] command: "-gdb-exit"

2017-08-17 11:56:09.1474|INFO|Nvidia.PentaK.PentaKPackage|[PentaKPackage] Mode changed to DBGMODE_Design

2017-08-17 11:57:02.8154|ERROR|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] stderr:This application has requested the Runtime to terminate it in an unusual way.

2017-08-17 11:57:02.8154|ERROR|Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager|[GDB] stderr:Please contact the application's support team for more information.

OPPO下也不是一帆风顺的,因为它调试安装均需要输入密码,这个过程中也不知道它处理了什么,稍不留神就会导致安装、运行不成功。

36f2287f2374

昨儿折腾了一天,暂时没什么好的想法了,等有了再尝试吧~

大家要有经验或想法的,欢迎指教!

解决方案

从最后的Time out入手,顺便搜了下日志里的Nvidia.PentaK.Debug.Interop.Gdb.GdbProcessManager关键字,参见Failure to attach debugger due to GDB command time-out,尝试调整了“Timeout, s”的值,居然就可以了!::>_<::>

36f2287f2374

从“Starting GDB debugger...”开始游戏界面会出现假死的情况。

完成后会出现下一步“Starting Java debugger...”,这步完成很快,随后提示框关闭,正式进入调试状态。

36f2287f2374

此时退出游戏时会正常输出日志。

线程 'Thread-14961 [Java]' (0x43) 已退出,返回值为 0 (0x0)。

线程 'Thread-6 [Java]' (0x49) 已退出,返回值为 0 (0x0)。

Program exited normally

程序“[21436] com.test.shooter”已退出,返回值为 0 (0x0)。

其它疑惑

直接运行Debug,貌似只有OPPO上第一次正常安装“com.nvidia.pentak.debugproxy”的情况下能够正常进入调试状态,再次运行没有执行安装也还是不行,其它手机也还是不行。

除三星外其它附加进程都已OK,不同机型需要的time还不尽相同。

“com.nvidia.pentak.debugproxy”到底是干嘛用的!?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值