Я делаю первые шаги в разработке для родного Android и нуждаюсь в некоторой помощи. Я копирую armv7 gdbserver на свой телефон и компилирую тестовое приложение «hello word», написанное на C++. И теперь я хочу отладить мое приложение с помощью gdb из пакета android ndk.Как генерировать символы отладки для родного приложения Android?
Я запускаю gdb и подключаюсь к телефону с помощью целевой удаленной команды и получаю это сообщение, а после команды «s» держит gdb.
(gdb) target remote 192.168.1.157:1235
Remote debugging using 192.168.1.157:1235
Reading /data/local/Test from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /data/local/Test from remote target...
Reading symbols from target:/data/local/Test...done.
Reading /system/bin/linker from remote target...
Reading /system/bin/linker from remote target...
Reading symbols from target:/system/bin/linker...(no debugging symbols found)...done.
0xb6fdf654 in __dl__start() from target:/system/bin/linker
(gdb) s
Single stepping until exit from function __dl__start,
which has no line number information.
Что я делаю неправильно? Почему он держится? И как генерировать символы/отладочную информацию? Я попытался установить «set (CMAKE_BUILD_TYPE Debug)», но никаких новых файлов не было создано.
Мои CMakeLists.txt
set(PROJECT_NAME Test)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_TOOLCHAIN_FILE android-cmake/android.toolchain.cmake)
set(ANDROID_NDK /home/drem1lin/Android/Sdk/ndk-bundle)
set(ANDROID_NATIVE_API_LEVEL "android-19")
set(ANDROID_TOOLCHAIN_NAME "arm-linux-androideabi-4.9")
set(ANDROID_ABI "armeabi-v7a")
project(${PROJECT_NAME})
cmake_minimum_required(VERSION 3.1)
include_directories(include)
file(GLOB SOURCES source/*.c*)
add_executable(${PROJECT_NAME} ${SOURCES})
foreach (module_src ${MODULES})
get_filename_component(module ${module_src} NAME_WE)
string(TOLOWER ${module} module)
add_library(${module} SHARED ${module_src})
set_target_properties(${module} PROPERTIES PREFIX "")
set_target_properties(${module} PROPERTIES SUFFIX ".m")
target_link_libraries(${module} ${LIBRARY_DEPS})
endforeach(module_src)
С наилучшими пожеланиями Павла.