lldb 란
gdb랑 비슷함.
https://aaronbloomfield.github.io/pdr/docs/gdb_vs_lldb.html
- android chromium을 debug build 해야함
- lldb server 를 android ndk 에서 download
https://developer.android.com/ndk/downloads - lldb server를 adb push
adb push .//toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64/lldb-server /data/local/tmp
adb shell "chmod 777 /data/local/tmp/lldb-server" - adb shell로 들어가서 아래를 참고하여 lldb server를 push 하고 실행한다.
이때 port를 chromium에서 사용할 port 번호로 지정한다.
$ adb shell
$ cd /data/local/tmp
$ ./lldb-server platform --server --listen 127.0.0.1:5039
(android에서 lldb server를 실행해야 함) - error while loading shared libraries: libc++.so.1 를 찾지 못하는 현상이 있으므로 아래와 같이 ld_library_path 를 설정한다
1번에서 다운받은 ndk 에서 libc++.so.1 패스를 찾아서 path 추가
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/test/Public/android-ndk-r26d_gdb/shader-tools/linux-x86_64/ - 아래와 같이 host PC에서 lldb 를 실행한다.
port 번호는 chromium에서 사용하는 5039
*port번호는 확인필요
./out/debug_x64/bin/chrome_public_apk lldb --port=5039
참고) 가끔 ./out/debug_x64/bin/chrome_public_apk lldb --port=5039 --pid=15071 이렇게 pid를 명시해서 해야 에러 안나고 실행될 수도 있음
사용법은 아래에서 참고함
https://chromium.googlesource.com/chromium/src/+/main/docs/android_debugging_instructions.md - lldb 는 gdb와 사용법은 비슷한 것으로 보임
이외에 참고한 사이트
https://serendipityme.tistory.com/150
https://datalocaltmp.com/debugging-android-with-lldb.html