2

「Documentation/gcov.txt」が言ったようにやった。

MIME についての基本:

$ uname -a
Linux turf.ivor 3.9.5 #1 SMP Fri Jun 14 00:51:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/redhat-release
Fedora release 18 (Spherical Cow)

$ zcat /proc/config.gz | egrep "GCOV_|DEBUG_FS"

CONFIG_GCOV_KERNEL=y
CONFIG_GCOV_PROFILE_ALL=y
CONFIG_DEBUG_FS=y

$ mount | grep debugfs
debugfs on /sys/kernel/debug type debugfs (rw,relatime)

# ls -la /sys/kernel/debug/gcov/ 
total 0
drwxr-xr-x  2 root root 0 Jun 14  2013 .
drwx------ 17 root root 0 Jun 14  2013 ..
-rw-------  1 root root 0 Jun 14  2013 reset

リセット ファイル (空のファイル) しか見つかりませんでした。

「ドキュメント」が言うように:

 90 4. Files
 91 ========
 92                                                                                
 93 The gcov kernel support creates the following files in debugfs:
 94 
 95         /sys/kernel/debug/gcov
 96                 Parent directory for all gcov-related files.
 97 
 98         /sys/kernel/debug/gcov/reset
 99                 Global reset file: resets all coverage data to zero when
100                 written to.
101 
102         /sys/kernel/debug/gcov/path/to/compile/dir/file.gcda
103                 The actual gcov data file as understood by the gcov
104                 tool. Resets file coverage data to zero when written to.
105 
106         /sys/kernel/debug/gcov/path/to/compile/dir/file.gcno
107                 Symbolic link to a static data file required by the gcov
108                 tool. This file is generated by gcc when compiling with
109                 option -ftest-coverage.

私は何をすべきか?

gcov はまだ最新の Linux バージョンをサポートしていますか?

アドバイス、ありがとう。

`

4

5 に答える 5

1

vmlinux.lds.h ファイルで次の変更を行い、vmlinux ファイルの .ctors セクションに .init_array を追加すると、機能します。

ここに画像の説明を入力

ありがとう

于 2015-12-14T10:41:10.987 に答える
0

私は同じ問題に遭遇しました.gccが犯人だと思います. 私の gcc のバージョンが 4.7 未満のときは、すべてうまくいっているように見えました。そうでなければ、あなたのような問題が出てきました。

なんで?

greebo52さんの答えが答えです。

の解き方?

4.7 で gcc を使用するか、独自の gcc 4.7 をコンパイルできます。gcc 4.7 を構成するときに、この --disable-initfini-array を追加します。このような:

./configure --disable-initfini-array ...(その他のオプション)

于 2013-08-28T07:46:44.820 に答える
0

3.7 または 3.8 より上の新しいカーネル バージョンの場合、gcda ファイルを取得するには sudo ユーザーである必要があります。

sudo su

今すぐディレクトリに移動します/sys/kernel/debug/gcov/

ビルドされた Linux コード パスが表示されます。

于 2013-07-24T14:04:00.920 に答える