EXPORT_SYMBOL を使用して、カーネル モジュールのいくつかの関数をエクスポートしました。
驚いたことに、関数の1 つが /proc/kallsyms に表示されませんでした。
奇妙な部分は、エクスポートされた関数の名前を変更すると、それが表示されることです!
注意:
1. カーネルで CONFIG_KALLSYMS を有効にしています。また、変数ではなく関数をエクスポートしています。2. 関数が static として定義されていません。
3. マシンを再起動して再試行しても解決しませんでした。
名前を変更して問題を回避しましたが、そもそもなぜ問題が発生したのかまだわからないのが気になります。
誰かが、少なくともこの種の問題をデバッグする方法へのポインタを提供できれば幸いです。
それが役立つ場合は、CONFIG_KALLSYMS を有効にして CONFIG_KALLSYMS_ALL を無効にしてカーネル 2.6.32 を使用しています。
前もって感謝します!