Flutter libapp.so cppcrash问题解决方法

1、准备flutter engine的编译环境;

2、执行命令./oh --oh-cpu x64 -t release,编译出engine/src/out/oh_release_x64/目录;

3、在 oh_release_x64目录下,运行cp exe.unstripped/* . -rf,将目录engine/src/out/oh_release_x64/exe.unstripped/下带符号表的编译产物文件拷贝覆盖到engine/src/out/oh_release_x64/目录;

4、准备好flutter sdk环境;

5、运行命令 flutter create --platforms oh --org com.example test_37,创建1个flutter的工程;

6、在test_37下执行:flutter build hap --release --split-debug-info=info --target-platform oh-x64 --no-tree-shake-icons --local-engine=/home/pc240015/engine/src/out/oh_release_x64 -v    2>&1|tee a.txt

7、在生成的目录test_37/info下,取出符号表app.oh-x64.symbols

8、在test_37/oh/entry/build/default/outputs/default/目录下取出entry-default-unsigned.hap,

9、解压entry-default-unsigned.hap并在entry-default-unsigned\libs\x86_64\目录下取出libapp.so

10、在报错的cppcrash文件中查找报错地址00000000002784d8,执行D:\Oh_Sdk\12\native\llvm\bin\llvm-addr2line.exe -f -e libapp.so00000000002784d8(栈顶地址)

FfiTrampoline____getRootIsolateToken$Method$FfiNative$Ptr

dart:ffi:0

11、按上步骤,解析出整个堆栈如下,然后,根据代码流程处理crash问题:

Timestamp:2024-11-19 17:10:03.170

Pid:25538

Uid:20020040

Process name:com.example.test_37

Process life time:2s

Reason:Signal:SIGSEGV(SEGV_MAPERR)@0x000000001a2bfa50

Fault thread info:

Tid:25570, Name:1.ui

#00 pc 000000001a2bfa50 Not mapped

#01 pc 00000000002784d8 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) FfiTrampoline____getRootIsolateToken$Method$FfiNative$Ptr           dart:ffi:0

#02 pc 000000000027847b /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) FfiTrampoline____getRootIsolateToken$Method$FfiNative$Ptr           dart:ffi:0

#03 pc 000000000012d133 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) RootIsolateToken.__getRootIsolateToken           dart:ui/platform_dispatcher.dart:91

#04 pc 000000000012d0ca /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) RootIsolateToken.instance.<anonymous closure>           dart:ui/platform_dispatcher.dart:86

#05 pc 00000000002896b3 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) stub _iso_stub_InitLateFinalStaticFieldStub           dart:core-patch/type_patch.dart:0

#06 pc 000000000012d01d /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) _findBinaryMessenger           package:flutter/src/services/platform_channel.dart:0

#07 pc 0000000000251c7c /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) MethodChannel.binaryMessenger           package:flutter/src/services/platform_channel.dart:273

#08 pc 000000000025b2fd /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) RestorationManager.initChannels           package:flutter/src/services/restoration.dart:169

#09 pc 000000000025b2a0 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) new RestorationManager           package:flutter/src/services/restoration.dart:157

#10 pc 000000000025b164 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) ServicesBinding.createRestorationManager           package:flutter/src/services/binding.dart:311

#11 pc 0000000000254808 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) ServicesBinding.initInstances           package:flutter/src/services/binding.dart:40

#12 pc 0000000000254649 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) PaintingBinding.initInstances           package:flutter/src/painting/binding.dart:20

#13 pc 00000000002545bd /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) SemanticsBinding.initInstances           package:flutter/src/semantics/binding.dart:18

#14 pc 0000000000252ed5 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) RendererBinding.initInstances           package:flutter/src/rendering/binding.dart:30

#15 pc 00000000002519f5 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) WidgetsBinding.initInstances           package:flutter/src/widgets/binding.dart:246

#16 pc 0000000000251806 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) new BindingBase           package:flutter/src/foundation/binding.dart:150

#17 pc 00000000002517bc /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) new _WidgetsFlutterBinding&BindingBase&GestureBinding           package:flutter/src/widgets/binding.dart:0

#18 pc 0000000000251649 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) new _WidgetsFlutterBinding&BindingBase&GestureBinding&SchedulerBinding           package:flutter/src/widgets/binding.dart:0

#19 pc 000000000025143f /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) new _WidgetsFlutterBinding&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding           package:flutter/src/widgets/binding.dart:0

#20 pc 00000000002513a2 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) new Completer           dart:async/future.dart:0

#21 pc 000000000025125f /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) WidgetsFlutterBinding.ensureInitialized           package:flutter/src/widgets/binding.dart:0

#22 pc 0000000000250d8a /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) runApp           package:flutter/src/widgets/binding.dart:1017

#23 pc 0000000000250d5e /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) main           package:test_37/main.dart:4

#24 pc 000000000029174b /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) _Closure.call           dart:core-patch/function.dart:0

#25 pc 00000000000ffcdc /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) _runMain.<anonymous closure>           dart:ui/hooks.dart:131

#26 pc 000000000029174b /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) _Closure.call           dart:core-patch/function.dart:0

#27 pc 00000000002675c8 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) _delayEntrypointInvocation.<anonymous closure>           dart:isolate-patch/isolate_patch.dart:297

#28 pc 0000000000291480 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd) _Closure.call           dart:core-patch/function.dart:0

#29 pc 00000000000ea3db /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd)_RawReceivePort._handleMessage           dart:isolate-patch/isolate_patch.dart:192

#30 pc 00000000000ce8c1 /data/storage/el1/bundle/libs/x86_64/libapp.so(60f3f401a479d40d6a9fecd635c56bcd)  stub InvokeDartCode

#31 pc 0000000000a4db6c /data/storage/el1/bundle/libs/x86_64/libflutter.so(1425d217238e6dd99aeb5330ca93eca60899c3db) _ZN4dart9DartEntry10InvokeCodeERKNS_4CodeEmRKNS_5ArrayES6_PNS_6ThreadE          /home/pc240015/li_guoning/engine_1009/src/out/ohos_release_x64/../../third_party/dart/runtime/vm/dart_entry.cc:195

Registers:

  rax:000000001a2bfa50 rdx:00007fd014d280e1 rcx:000000001a2bfa50 rbx:00007fd01847a3d0

  rsi:00007fd015408421 rdi:0000000000000002 rbp:00007fd01847a3c0 rsp:00007fd01847a3b8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值