1

C++ で単純な hello world プログラムのコード カバレッジを実行しようとしていました。ターゲット デバイスはアーム プロセッサであるため、GNU ARM ツールチェーンを使用しています。

arm-elf-gcc -mcpu=arm7tdmi -O2 -g -c main.c -o main.exe は .gcno ファイルを作成しますが、コード カバレッジを検出するために gcov が必要とする .gcda ファイルの作成に失敗します。

通常、g++/gcc -fprofile-arcs -ftest-coverage .cpp を実行すると、最初に .gcno ファイルと .exe が作成されます。a.exe を実行すると、.gcda ファイルが生成されます。

ここで、main.exe を実行して .gcda を生成しようとすると、エラーがスローされます - Program too big to fit in memory. この問題を解決するにはどうすればよいですか? 私はどこかで間違っていますか?

ありがとう、AJ

4

1 に答える 1

0

明らかに、ターゲット デバイスで実行可能ファイルを実行する必要があります。ターゲット デバイスにはファイル システムが必要です。終了時に、実行可能ファイルは通常の POSIX 関数 ( 、 、 、 など) を使用してカバレッジ情報を書き込みますopen。GCCfcntlソースwriteclose参照gcov-io.cしてください。実行可能ファイルに正常にリンクできることlibgcov.a、ターゲット デバイスへの書き込み権限があることなどを確認してください。

于 2012-11-16T20:20:14.697 に答える