Android ndk 單步除錯

2021-07-04 03:11:02 字數 934 閱讀 4338

1.設定ndk目錄  在「android」配置項上設定下「ndk」,選擇ndk後,有乙個選項「ndk location」,這裡配置ndk根目錄。

如下圖:

2.新增ndk支援

android專案上右鍵,選擇「android tools」再新增native的支援。

如果不需要除錯,這時編譯環境已經ok了

3.修改編譯命令

,在c++ build中設定build command,把use default選項去掉,在ndk-build後面新增引數ndk_debug=1,使得編譯出的so帶原始碼等除錯資訊。 如下圖:

開發、編譯、除錯環境到這裡算是ok了。除錯具體的操作繼續看下面。

新增

版本號對應的是 android:minsdkversion="14"

5.解決no symbol table is loaded

整個編譯執行沒問題的前提下,在c\c++**中加斷點,執行時不能斷住,加斷點時日誌提示「no symbol table is loaded.  use the "file" command.」。

測試用jni類:

public class mytest 

public static native string test();

}

解決方法:

將system.loadlibrary("jnitest");封裝到乙個static方法中,在oncreate中呼叫它。

吐槽:除錯是否能用,竟然跟**有關,google裡的大神們,您這ndk都到r10了,還這個樣子啊

順便吐槽下adt的介面開發功能,建立的資源竟然還需要手工關聯**,比15年前的vc6還不如啊,一種回到解放前的趕腳。不知道google拋棄eclipse後,自己搞的開發環境是否會好點,希望google能從ms或者borland挖幾個人過來啊。

參考

IAR單步除錯

首先進行配置,在driver下拉列表中選擇合適的驅動,其中simulator是純軟體 驅動,適合與應用程式前期簡單邏輯貨一般運算程式除錯。其他均為硬體 驅動,需要相應的硬體配合。go 全速執行 break 終止執行 reset 復位 stop debugging 退出偵錯程式 step over 單...

python單步除錯

執行python m pdb test.py pdb 會自動停在第一行,等待除錯,這時你可以看看幫助 pdb h命令 解釋break 或 b 設定斷點 continue 或 c 繼續執行程式 list 或 l 檢視當前行的 段 step 或 s 進入函式 return 或 r 執行 直到從當前函式返...

codeblocks 單步除錯

一直是在單個原始檔下,加斷點,然後debug,每次都沒結果.今天才知道codeblocks debug 是要先建乙個工程,然後才能debug,噗.簡單說下步驟 1 先裝gdb.裝了gdb之後,codeblocks會自動檢測到gdb位置.可檢視setting選項下,compiler and debug...