gdb cocos2dx v3
来源:互联网 发布:内网连接软件 编辑:程序博客网 时间:2024/04/30 05:25
Here is the step-by-stet tutorial to debug cocos2d-x 3.x on Android device. Please correct or optimize my steps if you do it in better way.
cd proj.android
cocos compile -p android -m debug --ndk-mode NDK_DEBUG=1
(to build with debug info)cocos run -p android -m debug
to deploy on device (sometimes it rebuilds, and I don't know why). This command uninstall former installation, installs the new one and runs the app one device.- make sure in
proj.android/libs/armeabi
directory you have the following filesgdb.setup, gdbserver, libcocos2dcpp.so
- also make sure that in
/proj.android/jni/obj/local/armeabi
directory you haveapp_process, gdb.setup, libc.so, linker
ndk-gdb
(important! this should be called in projects directory, not injni
directory)
If it worked that congratulations! But in this step you may see such error message:
Nareks-MacBook-Pro:proj.android Narek$ ndk-gdbjni/Android.mk:67: *** Android NDK: Aborting. . Stop.ERROR: The device does not support the application's targetted CPU ABIs! Device supports: armeabi-v7a armeabi Package supports: Android NDK:
Don't worry :). Lets see what is wrong:
here is the result of
ndk-build DUMP_APP_ABI
command called in projectsjni
directory:Nareks-MacBook-Pro:jni Narek$ ndk-build DUMP_APP_ABI Android NDK: /Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk: Cannot find module with tag '.' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
/Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk:67: * Android NDK: Aborting. . Stop.
As you can see NDK_MODULE_PATH
is missing. For obtaining the value do the following. Go to step where you compiled code. In first linse of execution of command cocos compile -p android -m debug --ndk-mode NDK_DEBUG=1
you can see something like this:
Runing command: compileBuilding mode: debugbuilding nativeNDK build mode: NDK_DEBUG=1The Selected NDK toolchain version was 4.8 !running: '/Users/Narek/NoorGames/android-ndk-r9d/ndk-build -C /Users/Narek/NoorGames/Games/test2/proj.android -j1 NDK_MODULE_PATH=/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d:/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d/cocos:/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d/external'
- copy from the log above you see the necessary value of
NDK_MODULE_PATH
. Execute the following commandexport NDK_MODULE_PATH=/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d:/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d/cocos:/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d/external
(be attentive to copy your path not mine)
That's it. Now run game on device, cd proj.android
, call ndk-gdb
and you should be able to debug with gdb.
I personally looked for this kind of tutorial already more than 20 days. I hope you enjoy your debugging already. :) And thank you @VikasPatidar for your help with ndk-build DUMP_APP_ABI
step!
EDIT1: As commented Vikas you can add NDK_MODULE_PATH
in Android.mk
file like this:
NDK_MODULE_PATH := $(LOCAL_PATH)/../../../../cocosNDK_MODULE_PATH += $(LOCAL_PATH)/../../../../external
EDIT2: If your app crashed here is a very powerful and easy way to investigate the problem by preventing direct debugging:
adb logcat | $NDK_ROOT/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi
It prints the crash dump.
- gdb cocos2dx v3
- cocos2dx v3环境配置
- cocos2dx v3.0 主循环
- cocos2dx Programmers guide v3.12
- quick-cocos2dx-v3.3打包
- cocos2dx-v3.0命令行创建工程
- quick-cocos2dx--v3编译android工程
- quick-cocos2dx-v3加密脚本文件
- cocos2dx V3.2 customer draw method
- cocos2dx-v3.0-图形绘制-draw()函数
- Cocos2dx v3.2骨骼动画加载学习
- cocos2dx-v3.0-游戏素材获取
- Cocos2dx v3.2骨骼动画加载学习
- cocos2dx-v3.0-游戏素材获取
- Cocos2dx v3.2骨骼动画加载学习
- cocos2dx-v3.0命令行创建工程
- cocos2dx v3.3final sprite变灰
- cocos2dx v3.x 屏幕适配方案
- CSS样式布局入门介绍,很详尽
- Android: ListView分页异步加载
- NDK的Helloworld例子
- Linux好玩的命令
- 韩语学习之第十二课
- gdb cocos2dx v3
- 面向对象学习总结
- 主从复制从服务器标准配置my.cnf
- shell文本过滤编程(二):awk之基础
- Android NDK编程浅入深出之--了解NDK
- HUNAN 2014 暑期培训训练赛之十二 F题 (线段树)
- 堆与栈的区别
- IOS CGAffineTransform 用于视图平移,放缩,旋转
- 【google 2006年笔试题】 在一个字符串中找到第一个只出现一次的字符(包括普通汉字)