我試圖在Android(Java/C/C++)上調試混合代碼。我的目標設備是Vizio 1008.代碼在仿真器上運行,我可以使用GDB從Eclipse進行調試。但是,我不能在真實設備上做到這一點。GDBSERVER在啓動時退出
後這個奮鬥的日子裏,我本地化問題:
當GDBSERVER設備(成功)上啓動時,它會立即與消息退出: 「未知的寄存器D0要求」。因此,沒有調試會話是可能的。我也嘗試了ARM的DS-5調試器。 GDBSERVER保持連接狀態,但退出遠程調試器的連接嘗試。我嘗試了GDBSERVER調試輸出,但它沒有提供任何有用的信息。
更奇怪的是,我嘗試了任何版本的GDBSERVER,我可以得到它們,並且它們都表現得像這樣。但是,我從Google NDK的舊版本中找到了GDBSERVER(3或4個版本)。而這個版本工作!但是,調試器(在主機上)很快就會死掉(分段故障),即使我知道該程序是OK的。
我查看了GDBSERVER源代碼,看起來像這個錯誤與GDBSERVER檢查硬件時的啓動順序有關。可能它涉及到浮點協處理器,但我不確定,因爲這個錯誤信息非常通用。
如果有問題,我使用Google NDK在Windows上進行設置。代碼是99%C/C++,帶有Java shell和一些用Java實現的函數(線程HTTP調用)。再次,應用程序在設備上工作,並且可以在仿真器上進行調試(包括Java和C/C++)。我也可以在設備上調試Java部分。
是否anybogy知道它可能是什麼?以及如何解決這個問題?它是Vizio嗎?
預先感謝您。