IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
「Linux/GDBを使ってコードを追っかける」のカーネルモジュール編 gdb vmlinux /proc/kcore では、カーネルモジュールのシンボルが読み込まれないので、gdbが起動した後にadd-symbol-fileコマンドを使ってシンボルを読み込む必要がある。ただし、単純に (gdb) add-symbol-file net/ipv4/tcp_cubic.o としても、相対アドレスなので、使えない。そこで、.text、.dataセクションなどの先頭番地をgdbに教える必要がある。これらのアドレスは、/sys/module/モジュール名/sections/以下のファイルを見ればわかる。 # ls /sys/module/tcp_cubic/sections/ . .data .gnu.linkonce.this_module .strtab __param .. .data.re
kgdbはLinux 2.6.26 から統合されたカーネルのデバッグ機能です。使った感じとしては、gdbサーバをカーネルが提供しているような雰囲気です。カーネルモジュールを書いていて厄介なバグに出会ったので、導入してみるに至りました。以下ではその導入方法について述べます。 おおまかな手順 おおかまな手順は以下の通りです。 kgdbをサポートしているカーネルを用意する。 boot時オプションでkgdbを使うように指示する。 ターゲットのvmlinuxをgdbクライアントにコピーする リモートからターゲットにつないでみる kgdbをサポートしているカーネルを用意する kernel.orgなどから2.6.26以降のカーネルを落としてきて、make oldconfigした上でmake menuconfigし、Kernel hackingの項目を開き、kgdbをオンにしてカーネルをビルドします。多く
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く