2014-10-06 73 views
0

我正在開發一些Linux內核的網絡驅動程序。我有幾個if-else條件,我正在重新分配或釋放「skb」結構 - 這裏是我有點困惑的地方。關於什麼我在做這些的if-else - 我有2種錯誤:在Linux內核中平衡內存使用情況

  1. 呼叫追蹤,因爲雙自由SKB,然後內核混亂並重新啓動
  2. MEM-泄漏,因爲我不釋放一些SKB

我的問題是 - 是否有任何形式的方法來尋找內存泄漏或雙重內存不足的錯誤?我知道內核釋放一些skb後會使用內存中毒,但它並不告訴我該錯誤在哪裏。

對不起,但我不允許共享這個驅動程序的代碼。

+0

嘗試'valgrind'來查找mem-leaks – Haris 2014-10-06 05:55:28

+0

你確定valgrind幫助我在內核空間中查找mem-leaks嗎? – user2699113 2014-10-06 05:57:18

+0

我錯過了那部分。我認爲它不會工作..對不起 – Haris 2014-10-06 06:01:45

回答

2

kmemleak似乎是你的朋友。請檢查http://lwn.net/Articles/187193/是否可以提供幫助。這值得評論,但我的聲望不是50,所以不能對你的問題添加評論。