IDA DEPLOYUDX コマンド
IDA DEPLOYUDX CLPPlus コマンドはライブラリーを作成し、そのライブラリーを使用する UDX を 1 つ登録します。
- データベース・サーバーのユーザー・ホームの下にプロジェクト・ディレクトリーを作成し、UDX ソース・ファイルを含む圧縮ファイルをプロジェクト・ディレクトリーにアップロードします。
- 圧縮ファイルをプロジェクト・ディレクトリーに解凍します。
- C++ で作成された UDX の場合は、すべてのソース・ファイルをコンパイルしてオブジェクト・ファイルを作成します。
- C++ で作成された UDX の場合は、オブジェクト・ファイルをリンクしてライブラリー・ファイルを作成します。
- ライブラリー・ファイルと、ライブラリーで使用されるその他のファイルをリリース・ディレクトリーにプロモートします。
- ライブラリー・ファイルを使用する UDX を 1 つ登録します。
デプロイメント・アクションを制御するパラメーターは、コマンド・ストリング、IDA パラメーター・ファイル、またはその両方で指定できます (IDA パラメーター・ファイルを参照してください)。
呼び出し
このコマンドは CLPPlus インターフェースから実行する必要があります。
許可
なし。
必要な接続
CLPPlus がデータベースに接続されている必要があります。
コマンド構文
コマンド・パラメーター
- PARAMFILE
- このコマンドに明示的に指定されていないパラメーターのデフォルト値を決定する IDA パラメーター・ファイルの名前 (IDA パラメーター・ファイルを参照)。 デフォルトがない必須パラメーターがコマンド・ストリングで明示的に指定されていない場合は、すべて IDA パラメーター・ファイルで指定する必要があります。
- SOURCE | SRC
- デプロイされる UDX で必要なすべてのソース・ファイルを含む圧縮ファイルの完全修飾名。
- PROJECT | PROJ
- 指定されたソース・ファイルのセット用に作成されるプロジェクト・ディレクトリーの名前。
名前に使用できるのは、英数字 (A から Z、a から z、0 から 9)、および下線文字 (_) のみです。デフォルトは、
SOURCEパラメーターで指定されたファイルの名前から拡張子を除いたものです。 - REPLACE
- 指定された名前のプロジェクトが既に存在する場合に、以下のいずれかを指定します。
- YES
- 既存のプロジェクトを削除し、新規プロジェクトで置換します。
- NO
- コマンドをキャンセルして、アクションを実行しません。
- PROMPT
- ユーザーに対して、以下のいずれかの操作を指定するよう指示します。
- コマンドを続行し、既存のプロジェクトを削除して置換します。
- コマンドをキャンセルして、アクションを実行しません。
- PROMOTE
- リリース・ディレクトリーにプロモートされる、生成されたライブラリー (C++ で作成された UDX の場合は
libraryパラメーターに指定されたファイル) などのファイルのコンマ区切りリスト。 - LANGUAGE | LANG
- UDX の作成に使用した言語
- CPP
- C++ の場合。
- LUA
- Lua の場合。
UDX の言語に応じて、次のいずれかのグループに属するパラメーターが指定できます (あるいは指定する必要があります)。- C++ パラメーター
- Lua パラメーター
- UDXLIBRARY | UDXLIB
- このパラメーターは、UDX の作成に使用した言語によって異なります。
- C++
- 登録されるライブラリー・ファイルが、リンク・ステップによって作成されたライブラリー・ファイルと異なる場合は、このパラメーターを使用して、プロジェクト・ディレクトリーからのパスとそのファイルの拡張子を含む完全な名前を指定します。
拡張子は .so でなければなりません。デフォルトは、リリース・ディレクトリー内にある、LIBRARY パラメーターに指定された名前 (何も指定されていない場合は、そのパラメーターのデフォルト値) の後に .so を付けたファイルです (例:
release/libudx77.so)。 - Lua
- ソース・ファイルを含む圧縮ファイルに .nzl という拡張子のファイルが複数含まれている場合は、このパラメーターを使用して、UDX に使用するファイルを指定します。 拡張子は .nzl でなければなりません。
- CLASS
- UDX のクラス (つまり、共有ライブラリー内のエントリー・ポイントのラベル)。
- SIGNATURE | SIG
- UDX のシグニチャー。以下に例を示します。
UDX タイプ シグニチャー 説明 UDSF udx42(VARCHAR,CHAR)2 つの入力引数 (1 つの VARCHAR と 1 つの CHAR) を受け入れる udx42という名前の UDSF。UDTF "sig=UDTFONEINT(integer)"1 つの入力引数 (整数) を受け入れる UDTFONEINTという名前の UDTF。UDAF "sandd(int,int) aggregate with (int,int)"2 つの入力引数 (両方とも整数) を受け入れる sanddという名前の UDAF。 - RETURN
- UDX から返されるデータのデータ・タイプ。
- UDSF または UDAF の場合、これは
intまたはcharなどの単純なデータ・タイプです。 - UDTF の場合、これは
"TABLE(<name> <data_type>)"という形式のストリングです。例えば、"TABLE(t1 integer)"は、返されたデータが、1 列の整数データを含むt1という名前の表にあることを示します。
- UDSF または UDAF の場合、これは
- ENVIRONMENT | ENV
- UDX の登録中に使用される環境変数のコンマ区切りリストが含まれるストリング。
以下に例を示します。
ENV "'USD_TO_INR'='60','EUR_TO_INR'='80'" - DETERMINISTIC | DET
- UDX が決定論的かどうか。
- CALLEDONNULLINPUT | NULLCALL
- 1 つ以上の入力値が NULL のときに、UDX を呼び出すかどうか。
- ALLOWPARALLEL | PARALLEL
- UDX が並列処理を許可するかどうか。値 YES は、UDSF または UDAF の場合にのみ指定できます。UDTF の場合は指定できません。
- LIBRARY | LIB
- 生成されるライブラリー・ファイルに割り当てられる名前 (拡張子を含む)。デフォルトは
lib<project>.soという形式の名前です。 例えば、プロジェクト名がudx77の場合、生成されるライブラリーのデフォルト名はlibudx77.soになります。追加のオブジェクト・ファイル (.o ファイル)、静的ライブラリー (.a ファイル)、または共有ライブラリー (.so ファイル) がリンク・ステップに組み込まれ、リリース・ディレクトリーにプロモートされる場合、これらは指定されたライブラリー名の後のコンマ区切りリストで指定できます。 DEPLOYUDX 操作では、LIBRARYDIRECTORIES パラメーターで指定されたディレクトリー内のファイルが検索されます。したがって、名前にパス情報が含まれないようにします。 ファイル名には、ファイル拡張子を含める必要があります。 例えば、
mylib.so(obj1.o,obj2.o,lib25.so,lib50.a)のようにします。 - USELIBRARY | USELIB
<project>[:<library>]項目 (ビルド・ライブラリーが依存する UDSL) のコンマ区切りリスト。 IDA REST API 呼び出しに渡されます。C++ でのみ使用可能です。library部分のデフォルトはlib<project>.soです。 リストで参照されるライブラリーは、release/DEPSフォルダー内のライブラリーへのシンボリック・リンクとなります。- INCLUDEDIRECTORIES | INCLUDEDIRS
- コンパイル時に組み込むファイルが含まれているプロジェクト・ディレクトリーに対して相対的に指定された、コンマで区切られたサブディレクトリーのリスト。
以下に例を示します。
INCLUDEDIRS "inc/sub2,myincludes" - BINARYDIRECTORY | BINDIR
- コンパイル時に作成されたオブジェクト・ファイルが保管されるプロジェクト・ディレクトリーのサブディレクトリーの名前。
IDA パラメーター・ファイル
IDA パラメーター・ファイルには、1 つ以上のコマンド・パラメーターの設定が含まれています。 パラメーター・ファイルを使用すると、必須パラメーターの値を設定したり (コマンド・ストリングで指定する必要がないようにする)、オプション・パラメーターのデフォルト値を設定または変更したりすることができます。
パラメーター構文は、パラメーターがコマンド・ストリングまたはパラメーター・ファイルのどちらに指定されているかに関係なく、同じです。 コマンド・ストリングで明示的に指定されているパラメーターは、パラメーター・ファイル内の対応するパラメーター設定をオーバーライドします。 適用されないパラメーターがパラメーター・ファイルで指定されている場合 (例えば、C++ 以外の言語で作成された UDX の CLASS パラメーターを指定した場合)、そのパラメーターは無視されます。
LANG CPP
SRC udxin7.tar
PROJ proj7
SIG udx7(int,char,char)
RETURN int
PROMOTE "ab.xml,x77.txt"
ENV "'USD_TO_INR'='60','EUR_TO_INR'='80'"
DET YES
NULLCALL YES
PARALLEL YES
REPLACE PROMPT
CLASS UDcf
LIB mylib.so(obj1.o,obj2.o,lib25.so,lib50.a)
LIBDIRS "libs/a22,temp"
UDXLIB udxseven
INCLUDEDIRS "inc/sub2,myincludes"
DEBUG YES
INCLUDEDIRS "inc/sub2,myincludes"
PARALLEL YES
例
pf1.txt という名前のパラメーター・ファイルを使用して、そのすべてのパラメーターを指定します。
SQL> IDA DEPLOYUDX PARAMFILE pf1.txtpf1.txt で指定された一部のパラメーターを上書きします。
SQL> IDA DEPLOYUDX PARAMFILE pf1.txt SRC udxin4.tar UDXLIB x11SQL> IDA DEPLOYUDX SRC C:\udxdev\udx1.tar SIG udx1(int,int) CLASS ABin RETURN char