2011-09-18 41 views
3

我試圖調試一些使用android ndk-build腳本構建的本機代碼,並且遇到了一個小障礙。我已經將本地代碼編譯到共享庫中,並且我想在eclipse中使用ndk-gdb進行調試。該代碼使用ndk-gdb和eclipse「No Source File named ...」

APP_OPTIM := debug 

在Application.mk文件中,我也添加了-g標誌,以確保。

的Eclipse配置調試原生代碼,我可以連接到gdbserver的設備上,但我不能因爲斷點從GDB設置爲以下錯誤:

496-break-insert /home/lithium/workspace/supermariowar/jni/SMW/SDL_android_main.cpp:17 
No source file named /home/lithium/workspace/supermariowar/jni/SMW/SDL_android_main.cpp. 
&"No source file named /home/lithium/workspace/supermariowar/jni/SMW/SDL_android_main.cpp.\n" 
496^done 
(gdb) 
499-exec-continue 
499^running 
(gdb) 

確實是有一個名爲SDL_android_main.cpp在顯示的位置,但這是我得到的錯誤,並且它不會在此時觸發斷點。

任何想法或建議將不勝感激。

-clark-

回答

5

的錯誤並不意味着GDB看不到/home/lithium/workspace/supermariowar/jni/SMW/SDL_android_main.cpp。相反,這意味着GDB無法在可執行文件和共享庫當前加載的中看到該源的調試信息。

這可能是您的共享庫尚未加載。

或者它可能是GDB知道的文件,但是以其他名字命名。嘗試info sourcesbreak SDL_android_main.cpp:17

+1

System.loadLibrary()尚未被調用。你把它釘在了頭上。謝謝! – clark