ref
属性を持つ関数を含むモジュールがあります。これにより.text
、 が別のセクションに配置されます。ARM スタック フレームの巻き戻しが機能する方法は、2 つの追加セクションがELFファイルに配置されることです。これらのセクションは、ARM のunwind.cにテーブルを提供します。module.cファイルは、モジュールをロードするときにこれらのテーブルを設定します。
セクションを使用する場合、このコードをアンワインドできるように、gcc-4.7 によって.ref.text
2 つのセクション.ARM.extab.ref.text
とセクションが作成されます。.ARM.exidx.ref.text
残念ながら、module.c.init
は 、などをスキャンするだけで.devinit
、これらのセクションは追加しません。CONFIG_DEBUG_KMEMLEAKをオンにし、割り当て中に__ref
フレームがアクティブな場合、スタック トレース コードは多くのunwind: Index not foundメッセージをカーネル ログに出力します。
__ref
モジュールで 使用するのは間違っていますか?- extabとexidxをコアの.ARM.extabと.ARM.exidxセクションに配置する ARM 用のアーキテクチャリンカ ファイルが必要ですか?
.ref
- なぜ私だけがこれを見るのですか?私は 2.6.36 を持っていますが、メインラインに問題があるようです。