2016-07-18 24 views
0

カーネルモジュール< vnos-module.ko>でAPIが何を返すのか知りたい。gdbを使ってLinuxカーネルモジュールをデバッグ

それほど簡単ではないことが分かっているので、カーネルモジュールをデバッグするためにシンボルテーブルをロードする必要があります。

私がしたのは です。1.カーネルモジュールの.text .bssセクションと.dataセクションのアドレスを検索しようとしました。 2. gdbでadd-symbol-fileコマンドを使用してシンボルテーブルファイルを追加します。

しかし、私は "/fabos/modules/vnos-module.ko...(でもデバッグシンボルが見つかりませんでした)...からシンボルを読み込んでいます...完了しました。

ここには何かがありますか?

[email protected]:/sys/module/vnos_module/sections# cat .text .data .bss 
0xf7f7f000 
0xf7fb7a30 
0xf7fc3da4 

[email protected]:/sys/module/vnos_module/sections# gdb /fabos/modules/vnos-module.ko 
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1 
Copyright (C) 2014 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "i686-linux-gnu". 
Type "show configuration" for configuration details. 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/gdb/bugs/>. 
Find the GDB manual and other documentation resources online at: 
<http://www.gnu.org/software/gdb/documentation/>. 
For help, type "help". 
Type "apropos word" to search for commands related to "word"... 
Reading symbols from /fabos/modules/vnos-module.ko...(no debugging symbols found)...done. 
add-symbol-file /fabos/modules/vnos-module.ko 0xf7f7f000 -s .data 0xf7fb7a -s .bss 0xf7fc3da4 
add symbol table from file "/fabos/modules/vnos-module.ko" at 
     .text_addr = 0xf7f7f000 
     .data_addr = 0xf7fb7a30 
(y or n) y 

Reading symbols from /fabos/modules/vnos-module.ko...(no debugging symbols found)...done. 

助けてください。

+1

ファイルにシンボルがない場合、シンボルはありません。セクションのアドレスがわかっていてもデバッグできません。バイナリに対応するシンボルまたは別のシンボルファイルを持つファイルを取得する必要があります。 –

+0

モジュールをコンパイルしてシンボルを組み込む方法はありますか? –

答えて

2

私はコメントできないので、私は答えとして書くでしょう。 (しかし、私はそれが100%確信していないのでコメントセクションの投稿のほうが多い)。

あなたのデバッグシンボルでモジュールをコンパイルする必要があります。これを行うには、モジュールをストリッピングせずにコンパイルする必要があります。 -gオプションを試して、カーネルでデバッグを有効にすることもできます。CONFIG_DEBUG_INFO=y

うまくいくかどうかわかりません。

+0

ありがとう、私は試してみます。 –

+0

はい、これは私のために働きました。また、APIの返品を知りたいと思いますか? "gdb vnos-module.ko"を与えてから "run"するだけではうまくいきません。私は許可の問題があります。 –

+1

あなたのgdbはデバッグにroot権限を必要としているようです。 [Here](http://stackoverflow.com/questions/25586972/why-is-gdb-requiring-root-permission-to-debug-user-programs)誰かが同様の問題を抱えていました。 「APIリターン」とは何を意味するのかよく分かりませんが(それは午前中です)、私に説明すると、私は自分のベストを助けようとします。 – RoughTomato

関連する問題