gdbを仮想マシンのカーネルに接続し、カーネルモジュールをデバッグしようとしています。仮想マシンに接続できます。カーネルコードのシンボル情報があり、カーネルコードを問題なくステップスルーできます。
カーネルモジュールのシンボルファイルを追加すると(ちなみに、リモート接続の前でも後でも)、ブレークポイントを設定するまでlist <function_name>
、関数に関する情報を得ることができます。その後:
(gdb) b function_name
Breakpoint 1 at 0xffffffffa01d0074 (3 locations)
(gdb) list function_name
No line number known for function_name.
追加情報:
- ホストとゲストはどちらもFedora1664ビットです。
- 私がデバッグしているカーネルは3.0.8です。このカーネルは、異なる環境とリモート接続設定を使用した以前の32ビット設定で正常に機能したことに注意してください。
- 私はこれをgdb7.2と7.3.50で試しました。
何が悪いのかについてのアイデアはありますか?問題が私のカーネル、カーネルモジュールのコンパイル、接続、またはgdbのいずれであるかを確実に知っていれば、役に立ちます。
更新:gdb 7.1では、次のようになります。
...
(gdb) b function_name
/gdb/breakpoint.c:7903: internal-error: expand_line_sal_maybe: Assertion `found' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
どういう意味ですか?