ndk stack使用方法

2021-07-12 03:11:11 字數 1006 閱讀 4256

過去用eclipse跑cocos2d android崩潰了只能出乙個fatal signal訊號,現在有了ndk-stack好了一點點,能定位到哪個函式崩潰了,用法如下

我的cocos2d-x android工程在 d:\works\demo\hellococos\proj.android目錄下,ndk_root (即安裝ndk的路徑)環境變數已經配好,在cmd命令列輸入如下:

adb logcat | %ndk_root%\ndk-stack -sym d:/works/demo/hellococos/proj.android/obj/local/armeabi

或 adb logcat | %ndk_root%\ndk-stack -sym d:/works/demo/hellococos/proj.android/obj/local/armeabi - dump d:/log.txt (log到檔案)

會顯示waiting for device -

這時你可以插入你的手機,或adb connect你的裝置

這時只要你的程式 崩潰,就會顯示出crash資訊,如下

********** crash dump: **********

build fingerprint: 'xiaomi/aries/aries:4.1.1/jro03l/jlb29.0:user/release-keys'

pid: 6546, tid: 6575, name: thread-9654  >>> com.cocos2dx.sango <<<

signal 11 (sigsegv), code 1 (segv_maperr), fault addr deadbaad

stack frame #00  pc 00013a78  /system/lib/libc.so

stack frame #01  pc 00015e55  /system/lib/libc.so (dlfree+1628)

stack frame #02  pc 00017003  /system/lib/libc.so (free+10)

使用ndk stack來查詢崩潰

logcat報錯 fatal signal 6 sigabrt at 0x000025c9 code 6 thread 9703 thread 1277 都是一些暫存器以及函式位址,真不知道怎麼找具體哪個函式出錯了,這個時候使用ndk stack這個工具,ndk stack需要log作為輸入來分析 ...

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

使用ndk stack定位so庫crash位置

ndk stack 工具讓您可以在堆疊追蹤出現在 adb logcat 的輸出中時過濾它們。它還可以從源 將共享庫中的任意位址替換為對應的 source file line number 值,從而更容易找出問題所在。例如,它可將下面的crash log i debug 31 i debug 31 b...