How can I debug android native C library compiled externally with cmake

1k Views Asked by At

Essentially I need to debug native C code included in the FreeRDP Android project.

I successfully compiled the project downloaded from Github using the indicated bash script. https://github.com/FreeRDP/FreeRDP/blob/master/docs/README.android

I also correctly compiled the Android part with Android Studio. I can run the Android application correctly and without problems on a couple of devices by connecting to a couple of Windows servers.

A change to C source in the native library generates a runtime error, so I need to debug C source code.

I have exactly his problem to which no one has been able to give an answer and I do not even know if he has found a solution. Unfortunately my reputation (<50) does not allow me to post comments under that post (and other similars)


I think the .so files are compiled correctly, i have checked with objdump --syms and objdump --debugging but i can't step into native code. In Android Studio i have set Debug type: Dual and i also tried to put on LLDB Startup Commands something like breakpoint set --name <function> with no effects.

When the native code thrown the exception

--------- beginning of crash
10-02 14:42:22.064 32032-32032/com.freerdp.afreerdp A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x28 in tid 32032 (reerdp.afreerdp)

The debug stopped with following error:

__ lldb_unnamed_symbol64$$libfreerdp-android2.so

(i can't post Android Studio screenshot due my reputation)


Of course there is no problem creating an application that uses native code and set brackpoint inside the native code. https://developer.android.com/ndk/guides/index.html


Environment:
Ubuntu 16.04.3 LTS
Android Studio 2.3.3
Gradle version 3.3
cmake version 3.5.1 (on system)
cmake version 3.6.0-rc2 (on android sdk)
lldb version 4.0.0 (on android sdk)

Thanks in advance to anyone who can give me any help.

Andrea

0

There are 0 best solutions below