プログラムの実行時にどの「sin」関数が呼び出されるかを知る方法は?

ゼル

異なるバージョンのlibm.aを使用しています。私が遊んでいるのはfdlibmのlibm.a(Sunから)です。

問題は、私のプログラムがfdlibmのlibm.aの関数を呼び出さず、システムのglibcのlibm.aの関数を呼び出すと感じていることです。

#include "fdlibm.h"
int main(){
  double x = sin(3);
}

プログラムはコンパイルされたC ++プログラムです(他のc ++プログラムとリンクする必要があるため):

g ++ prog.cpp libm.a

ここで、libm.aはfdlibmのものです。(Sunから、http://www.netlib.org/fdlibm/readme

質問1

sin実行時に実際に何が呼び出されるかをどのように知ることができますか?objdump、gdbなどのさまざまなツールについて聞いたことがあります...私の場合、どのツールをどのように使用できますか?

質問2

fdlibmのlibm.aを強制的に使用するにはどうすればよいですか?

ありがとう。

user184968

質問1.objdump、gdbなどのさまざまなツールについて聞いたことがあります。

gdbと同じように。ファイルtrace_sin.gdbを作成します

$ cat trace_sin.gdb
set confirm off
b sin
commands
bt
c
end
r
quit

そして、プログラムを実行します。

$ gdb -q -x trace_sin.gdb   ./a.out Reading symbols from ./a.out...(no
debugging symbols found)...done. Breakpoint 1 at 0x400498

Breakpoint 1, 0x000000314941c760 in sin () from /lib64/libm.so.6
#0  0x000000314941c760 in sin () from /lib64/libm.so.6
#1  0x0000000000400629 in main ()

あなたが私の場合に見るようにsinlibmから来ています

質問2.fdlibmのlibm.aを強制的に使用するにはどうすればよいですか?

sinfdlibmからがlibmの前に来ることを確認してくださいsin

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このプログラム内で想定されているように関数呼び出しが実行されないのはなぜですか?

分類Dev

関数が原因で実行を停止するCプログラムが呼び出されますか?

分類Dev

LLVMの中間表現から、プログラムの各関数で実行される関数呼び出しのリストを取得するにはどうすればよいですか?

分類Dev

Pythonプログラムの実行に使用されるC ++のsystem()関数呼び出しの戻り値

分類Dev

待機グループから呼び出された関数からの実行時エラーをキャッチする方法は?

分類Dev

別の関数(C ++)で呼び出された関数からプログラムを終了する方法

分類Dev

iOSプログラミングでデリゲートを呼び出すにはどうすればよいですか?コードを呼び出さない場合、アプリはコードをいつ実行する必要があるかをどのように知るのですか?

分類Dev

関数が呼び出されたときにプログラムが入力の取得をスキップするのはなぜですか?

分類Dev

共有ライブラリ(.so)は、ロードプログラムに実装されている関数をどのように呼び出すことができますか?

分類Dev

関数が再度呼び出された場合、関数の最初の呼び出しの実行を停止するにはどうすればよいですか?

分類Dev

Javaプログラムがシェルから呼び出される場合、引数を渡すのにどちらの方法が良いですか?

分類Dev

リンカーは、参照されているが実際にはプログラムで呼び出されていない関数の再配置を行いますか?

分類Dev

ユーザーがどのようにbashからプログラムを呼び出したかを知る方法はありますか?

分類Dev

Openerp-特定のビューが呼び出されるたびに実行する関数を呼び出すにはどうすればよいですか?

分類Dev

iOSでプログラムされたブラウザ呼び出しの実行に時間がかかりすぎる

分類Dev

呼び出し元は、同じ名前のどのメンバー関数が呼び出されるかをどのように知るのですか?

分類Dev

C関数を呼び出すVerilogプログラムをコンパイルして実行するにはどうすればよいですか?

分類Dev

プログラムの実行を停止しないwindbgにブレークポイントを設定する方法は、呼び出された関数をログに記録するだけです。

分類Dev

プロパティが特定の呼び出しシグネチャと戻り値の型を持つ関数であるかどうかを判断するために、実行時の型チェックを実行することは可能ですか?

分類Dev

プログラムは、kill関数が呼び出される前に戻る/終了できますか?

分類Dev

いくつかのコードが呼び出されたシェルにプログラムで変数を追加する方法は?

分類Dev

非同期呼び出しを行う関数を実行する場合、ループを実行する場合、関数の残りの部分を実行する前に呼び出しを待機させるにはどうすればよいですか?

分類Dev

次のプログラムで、非同期関数が同期の前に呼び出されるのはなぜですか?

分類Dev

C ++プログラムのデバッグ中にround()関数が呼び出されると、GDBは任意の値を出力します。

分類Dev

`methods`が失敗したときに、関数呼び出しでどのメソッドが使用されているかを知る方法は?

分類Dev

どの非同期呼び出しが最初に返されるかに応じて関数を実行します

分類Dev

notify()を呼び出した後、実際にロックが解除されるのはどの時点ですか

分類Dev

onSurfaceTextureAvailableがどのTextureViewに対して呼び出されるかを知る方法

分類Dev

1つのファイルで宣言され、他のファイルから呼び出されるPHPのパラメーターを使用して、再利用可能な関数をプログラムするにはどうすればよいですか?

Related 関連記事

  1. 1

    このプログラム内で想定されているように関数呼び出しが実行されないのはなぜですか?

  2. 2

    関数が原因で実行を停止するCプログラムが呼び出されますか?

  3. 3

    LLVMの中間表現から、プログラムの各関数で実行される関数呼び出しのリストを取得するにはどうすればよいですか?

  4. 4

    Pythonプログラムの実行に使用されるC ++のsystem()関数呼び出しの戻り値

  5. 5

    待機グループから呼び出された関数からの実行時エラーをキャッチする方法は?

  6. 6

    別の関数(C ++)で呼び出された関数からプログラムを終了する方法

  7. 7

    iOSプログラミングでデリゲートを呼び出すにはどうすればよいですか?コードを呼び出さない場合、アプリはコードをいつ実行する必要があるかをどのように知るのですか?

  8. 8

    関数が呼び出されたときにプログラムが入力の取得をスキップするのはなぜですか?

  9. 9

    共有ライブラリ(.so)は、ロードプログラムに実装されている関数をどのように呼び出すことができますか?

  10. 10

    関数が再度呼び出された場合、関数の最初の呼び出しの実行を停止するにはどうすればよいですか?

  11. 11

    Javaプログラムがシェルから呼び出される場合、引数を渡すのにどちらの方法が良いですか?

  12. 12

    リンカーは、参照されているが実際にはプログラムで呼び出されていない関数の再配置を行いますか?

  13. 13

    ユーザーがどのようにbashからプログラムを呼び出したかを知る方法はありますか?

  14. 14

    Openerp-特定のビューが呼び出されるたびに実行する関数を呼び出すにはどうすればよいですか?

  15. 15

    iOSでプログラムされたブラウザ呼び出しの実行に時間がかかりすぎる

  16. 16

    呼び出し元は、同じ名前のどのメンバー関数が呼び出されるかをどのように知るのですか?

  17. 17

    C関数を呼び出すVerilogプログラムをコンパイルして実行するにはどうすればよいですか?

  18. 18

    プログラムの実行を停止しないwindbgにブレークポイントを設定する方法は、呼び出された関数をログに記録するだけです。

  19. 19

    プロパティが特定の呼び出しシグネチャと戻り値の型を持つ関数であるかどうかを判断するために、実行時の型チェックを実行することは可能ですか?

  20. 20

    プログラムは、kill関数が呼び出される前に戻る/終了できますか?

  21. 21

    いくつかのコードが呼び出されたシェルにプログラムで変数を追加する方法は?

  22. 22

    非同期呼び出しを行う関数を実行する場合、ループを実行する場合、関数の残りの部分を実行する前に呼び出しを待機させるにはどうすればよいですか?

  23. 23

    次のプログラムで、非同期関数が同期の前に呼び出されるのはなぜですか?

  24. 24

    C ++プログラムのデバッグ中にround()関数が呼び出されると、GDBは任意の値を出力します。

  25. 25

    `methods`が失敗したときに、関数呼び出しでどのメソッドが使用されているかを知る方法は?

  26. 26

    どの非同期呼び出しが最初に返されるかに応じて関数を実行します

  27. 27

    notify()を呼び出した後、実際にロックが解除されるのはどの時点ですか

  28. 28

    onSurfaceTextureAvailableがどのTextureViewに対して呼び出されるかを知る方法

  29. 29

    1つのファイルで宣言され、他のファイルから呼び出されるPHPのパラメーターを使用して、再利用可能な関数をプログラムするにはどうすればよいですか?

ホットタグ

アーカイブ