簡體   English   中英

打開文件太多錯誤 - 調試

[英]Too many open files error - debugging

我經常在設備上遇到“打開文件太多錯誤”錯誤(HTC Wildfire S,Android 2.3.5。)。 我已經發現了一些我可能有內存泄漏的話題。 問題是如何調試問題? 如何找到哪個進程正在使用文件描述符而不是釋放它?

我的設備不是root用戶 - 所以我想知道如何在非root設備上獲取有關打開的描述符的信息。 如果這不可能,請告訴我如何在Android模擬器上獲取此類數據。

我剛剛處理過這個問題。 (SFAIK)OS是“太多打開的文件”。 在任何Unix上,在終端中運行lsof 讓那個lsof | less lsof | less因為你不會相信有多少打開的文件。 這些天的應用程序都是文件瘋狂的。

無論如何,關閉一些應用程序,盡可能多,然后再試一次。 其中一個罪魁禍首是adb本身。 我不知道它是否會關閉任何東西。 因此,如果關閉某些應用程序沒有幫助,請關閉Eclipse。 然后在Unix終端中運行skill -9 adb 其他操作系統將有其他殺毒工具。 但是,在關閉Eclipse之后,可能(當然在Unix中)可能會在背景中消失。

如果這不起作用,變得非常小; 去那里; 並手動關閉這些文件。

為了獲得與文件本身一起打開的文件數,您還可以使用以下命令:

lsof | grep USER | tee /dev/tty | wc -l

USER打開的文件總數將打印在輸出的最后。

你也可以運行類似的東西

lsof | grep <pid>

查看您的應用正在使用的所有文件。 添加| wc -l | wc -l到最后得到一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM