0

いくつかのライブラリの調査中に、この種のコードを見つけました

Dl_info info = {
   NULL,
   NULL,
   NULL,
   NULL
};

if (!dladdr((void*) dirSep, &info)) {
   return libPath.c_str();
}

このコードが存在するクラスのメンバーはどこにありますか(comeメンバー関数内)、私の質問は次のとおりです。その関数が情報フォームフィールドを取得できる文書化された場所はありdirSepますか?static const char*dladdrstatic const member

4

1 に答える 1

1

いいえ、それdladdrを約束または保証することはできません。モジュール内のシンボルテーブルのみを見ることができます。シンボル テーブルにシンボルが含まれている場合は、そのシンボルが提供されます。そうでなければ、そうではありません。シンボル テーブルに含まれるシンボルは、モジュールのコンパイル方法、リンク方法、ストリップ方法とストリップの有無によって異なります。

一般的に言えば、コードがリンクできる場合は、それdladdrを見つける必要があります。

于 2014-02-18T09:09:07.537 に答える