vinjn / articles

Everything is possible
8 stars 0 forks source link

android_debugging #10

Open vinjn opened 11 years ago

vinjn commented 11 years ago

C:\Downloads\adt-bundle-windows-x86-20130219\sdk\tools\monitor.bat

Register APCS name APCS Role
R0-R3 a1-a4 argument 1-4/scratch register/result
R4-R8 v1-v5 register variable
R9 sb/v6 static base/register variable
R10 sl/v7 stack limit/stack chunk handle/register variable
R11 fp/v8 frame pointer/register variable
R12 ip scratch register/new-sb in inter-link-unit calls
R13 sp lower end of the current stack frame
R14 lr link register/scratch register
R15 pc program counter
R16 cpsr ARM processor mode indicator
D0-DN Double precision registers (N)
vinjn commented 11 years ago

Android architecture consists of the following layers:

vinjn commented 11 years ago

http://www.kandroid.org/online-pdk/guide/debugging_gdb.html

vinjn commented 11 years ago

To direct printf to logcat

echo "log.redirect-stdio = true" > /data/local.prop

vinjn commented 11 years ago

adb shell cat /data/tombstones/tombstone_00 | ndk-stack -sym solution/obj/local/armeabi/

print human-readable callstack

vinjn commented 11 years ago

You don't need to use -O0 or -g switches. You need to do one of following:

Can you try running gdb manually, without gdb script? It involves following steps:

set solib-search-path obj/local/armeabi
file obj/local/armeabi/libMySharedLib.so
target remote :5055

And see if you can debug then.

If you want see symbols for other shared libraries your library is using like libc.so, then pull them from device (from /system/lib folder) to your obj/local/armeabi folder.

vinjn commented 11 years ago

ndk-gdb --start com.nvidia.trex.TREXActivity --force --verbose

vinjn commented 11 years ago

http://software.intel.com/en-us/articles/how-to-test-and-debug-ndk-based-android-applications

vinjn commented 10 years ago

adb driver http://visualgdb.com/UsbDriverTool/UsbDriverTool-sfx.exe