Допустим, вы создали и развернули библиотеку Rust на Android, выполнив эти шаги .Чтобы выполнить отладку с помощью rust-gdb или графически с помощью CLion, сделайте следующее:
Остановите gradle для удаления ваших файлов Rust .so с символами отладки, добавив packagingOptions.doNotStrip "**/*.so"
к app/build.gradle
Переместите двоичный файл gdbserver из каталога prebuild
Android NDK на устройство:
~/Android/Sdk/ndk-bundle/prebuilt/android-x86_64/gdbserver$ ~/Android/Sdk/platform-tools/adb push gdbserver /data/local/tmp
~/Android/Sdk/platform-tools/adb shell "chmod 777 /data/local/tmp/gdbserver"
- Перезапустите adbd с правами root:
~/Android/Sdk/platform-tools/adb root
- Переадресация порта, который вы будете использовать для gdbserver:
~/Android/Sdk/platform-tools/adb forward tcp:1337 tcp:1337
- Присоедините gdbserver к процессу, который вы хотите отлаживать:
~/Android/Sdk/platform-tools/adb shell
generic_x86_64:/ # su
generic_x86_64:/ # set enforce 0
generic_x86_64:/ # /data/local/tmp/gdbserver :1337 --attach $(ps -A | grep your.android.application.id | awk '{print $2}')
- Либо запустите
rust-gdb
, либо настройте конфигурацию CLion "Remote GDB" с помощью:
target remote tcp:localhost:1337