Я призываю ниндзя отладки Android NDK здесь!
Я пробовал так много учебников по отладке нативного кода Android, что не могу вспомнить их все.Теперь я пытаюсь заставить ARM DS-5 работать.Я заставил его работать с примерами Android NDK, где основная активность загружает библиотеку.Лагги, но работает.
Но мой проект немного сложен.Моя основная активность имеет кнопку, когда я нажимаю на нее, запускается SubActivity и загружается собственная библиотека.Когда я просто пытаюсь использовать отладчик DS-5, когда загружается основная активность, я предполагаю, что отладчик пытается подключиться к lib, но терпит неудачу, говоря:
Execution stopped at: 0xAFD0C52C
Connected to unknown platform
0xAFD0C52C POP {r4,r7}
file "D:\workspace\Project\bin\app_process"
WARNING(IMG53): app_process has no line debug information
add-symbol-file "D:\workspace\Project\bin\libc.so"
Loading library symbols: libc.so
WARNING(IMG53): libc.so has no line debug information
Execution stopped at: 0xAFD0C748
In thread 2 (OS thread id 7606)
In __futex_syscall3 (no debug info)
add-symbol-file "D:\workspace\Project\obj\local\armeabi\libName.so"
Execution stopped at: 0xAFD0C748
In thread 3 (OS thread id 7607)
Execution stopped at: 0xAFD0BFFC
In thread 4 (OS thread id 7608)
In __rt_sigtimedwait (no debug info)
Execution stopped at: 0xAFD0B854
In thread 5 (OS thread id 7609)
In select (no debug info)
Execution stopped at: 0xAFD0C748
In thread 6 (OS thread id 7610)
In __futex_syscall3 (no debug info)
Execution stopped at: 0xAFD0B70C
In thread 7 (OS thread id 7611)
In __ioctl (no debug info)
Execution stopped at: 0xAFD0B70C
In thread 8 (OS thread id 7612)
Execution stopped at: 0xAFD0C52C
In thread 1 (OS thread id 7605)
In epoll_wait (no debug info)
0xAFD0C52C POP {r4,r7}
WARNING(CMD454): The shared library D:\workspace\Project\obj\local\armeabi\libName.so is currently not loaded by the application so the request has been pended
cd "D:\workspace"
Working directory "D:\workspace"
directory "D:\workspace\Project"
Source directories searched: D:\workspace\Project;$cdir;$cwd;$idir
break -d -p "D:\workspace\Project\jni\Name.cpp":525
WARNING(CMD452-COR167):
! Breakpoint 1 has been pended
! No compilation unit matching "D:/workspace/Project/jni/Name.cpp" was found
condition 1
break-script 1 ""
ignore 1 0
break-stop-on-threads 1
unsilence 1
Breakpoint 1 unsilenced
Я думаю, что он пытается подключиться к нативномуlib, когда начинается основная активность.Но библиотека загружается позже!
То, что я пробовал:
- Установка точки останова Java в SubActivity после загрузки собственной библиотеки, затем присоединение отладчика DS-5.Но я получаю различные ошибки от Eclipse, говорящие о таймаутах, что угодно.
- В настройках конфигурации отладки я не могу выбрать действие, которое должно вызывать отладку собственного кода, есть выпадающий список, но он отключен:
Сам вопрос: если моя библиотека не загружена основной деятельностью, как заставить DS-5 ждать загрузки библиотеки?