私は GMP ライブラリ 5.02 のソースをダウンロードしました。そして、最大のデバッグ可能性のためにここで提案されているように、実行しました:
./configure --disable-shared --enable-assert --enable-alloca=debug --host=none CFLAGS=-g
makeでコンパイルしてから、make installでライブラリをインストールしました。次に、プログラムを次のようにコンパイルしました。gcc -lgmp -std=c99 -g -c program.c
次に、実行しました:ltrace ./a.out
しかし、ltrace は、ソース コードにある TRACE() 関数をまったく呼び出していないことに気付きました。TRACE() の内容をトレースしたいと思います。
そのためにはどうすればいいですか?または、GMP ライブラリ内でデバッグする他の簡単な方法はありますか? (gdbでそれを行う方法を理解できませんでした.gmp_printfにステップインしたくありませんでした)
ありがとう。
EDIT : さらに調査を試みたところ、ソースはあるのに GMP ライブラリを変更できないことがわかりました。プログラムの最初に呼び出す関数printf("hello\n");
の最初にa を挿入し、すべての GMP を ( a の後でも) を使用してライブラリを再インストールし、プログラムをコンパイルして起動しましたが、出力されませんでした」こんにちは"。また、インストールされている別の GMP ライブラリを使用していないことも確認しました (ライブラリが見つからないため、プログラムをコンパイルできません)。それでも、gcc は -L オプションを使用して GMP ソース フォルダー内のライブラリーを検索するように主張しました。mpz_init2
make clean
make install
make uninstall
何が間違っているのかわかりません:(