2014-03-26 71 views
0

我在i.MX51板上運行自定義android,並觀察到應用程序出現了一個奇怪的問題。即使在使用相同的PID進行分段故障後仍然運行的Android本機應用程序

我得到了應用程序的段錯誤的n個的logcat日誌(本地,文字使用NDK):

03-19 15:26:46.763 I/DEBUG (2234): pid: 2257, tid: 2257 >>> /usr/bin/powerMgr <<< 
03-19 15:26:46.763 I/DEBUG (2234): signal 8 (SIGFPE), code 0 (?), fault addr 000008d1 

即使在這個應用程序繼續用同樣的PID(2257),我從兩個確認運行logcat和ps命令。這可能嗎 ?如果是的話,怎麼樣?

回答

1

這不是分段錯誤(SIGSEGV,信號11)。你得到了一個SIGFPE,信號8,可能是整數除以零的結果。信號處理沒有終止進程,所以它只是繼續執行。

許多ARM CPU都缺少硬件除法指令,因此SIGFPE是由軟件除法函數明確引發的。因此,在「故障地址」中沒有獲得有意義的值。

對此的處理隨着時間而改變; Android的更新版本更好一些。

+0

謝謝,我錯誤地把SIGFPE作爲分段錯誤! – androidFan

相關問題