LDLREAD(3X) — NEWS-OS Programmer’s Manual
名称
ldlread, ldlinit, ldlitem − 共通オブジェクトファイル関数の行番号エントリ を操作する
形式
#include <stdio.h>
#include <filehdr.h>
#include <syms.h>
#include <ldfcn.h>
int ldlread (ldptr, fcnindx, linenum, linent)
LDFILE ∗ldptr;
long fcnindx;
unsigned short linenum;
LINER linent;
int ldlinit (ldptr, fcnindx)
LDFILE ∗ldptr;
long fcnindx;
int ldlitem (ldptr, linenum, linent)
LDFILE ∗ldptr;
unsigned short linenum;
LINER linent;
解説
ldlread は、現在 ldptr と対応付けられている共通オブジェクトファイルの行番号エントリをサーチ します。 ldlread は、関数の始まりに対する行番号からサーチを始め、 単一の関数と対応付けられている行番号までサーチを行ないます。 その関数は fcnindx により識別されます。 fcnindx はオブジェクトファイルのシンボルテーブル中のローカルシンボルエントリの インデックスです。 ldlread は、 linenum 以上の一番小さな行番号をもつエントリを linent に読み込みます。
ldlinit と ldlitem は 2 ついっしょで、 ldlread とまったく同じように機能します。 ldlread または ldlinit への最初の呼び出しの後で、 ldlitem を使用して、単一の関数と対応付けられた一連の行番号エントリを検索すること ができます。 ldlinit は単に、 fcnindx により識別される関数に対する行番号エントリを探しだします。 ldlitem は、 linenum 以上の一番小さな行番号をもつエントリを探し、それを linent に読み込みます。
ldlread、 ldlinit および ldlitem はそれぞれ、 SUCCESS か FAILURE のいずれかを返します。 オブジェクトファイルに行番号が存在しない場合、fcnindx が シンボルテーブル中の関数エントリをインデックスしない場合、 または linenum 以上の行番号が見つからない場合は、 ldlread は失敗します。 オブジェクトファイルに行番号が存在しない場合、または fcnindx が シンボルテーブル中の関数エントリをインデックスしない場合は、 ldlinit は失敗します。 linenum 以上の行番号が見つからない場合は、 ldlitem は失敗します。
プログラムはオブジェクトファイルのアクセスルーチンライブラリ libmld.a とともにロードされなければなりません。
関連事項
ldclose(3X), ldopen(3X), ldtbindex(3X), ldfcn(3X)
NEWS-OSRelease 4.2.1R