Shiba/Shiba Byte Code
のバックアップ(No.1)
ホーム
検索
最終更新
ヘルプ
リンク元
Wiki書式ヘルプ(整形ルール)
バックアップ一覧
差分
を表示
現在との差分
を表示
現在との差分 - Visual
を表示
ソース
を表示
Shiba/Shiba Byte Code
へ行く。
1 (2010-07-31 (土) 20:34:21)
Shiba Object File
Shiba Object File
オブジェクトファイル
モジュール名
定数テーブル
シンボルテーブル
シンボル一覧
シンボル解決情報
オブジェクトファイル
Cでいう.oのファイル。
含まれるもの
モジュール名
定数テーブル
シンボルテーブル
シンボル一覧
シンボル解決情報
モジュール名
モジュール名が文字列として格納される。
定数テーブル
必要な定数テーブルの長さ。
コンパイル時に解決されている定数郡。
.oのファイルサイズ縮小のために,コンパイル時に解決されている定数郡は定数テーブルの先頭に置いておく。
そうしておくことで,リンク時に解決される定数郡のデータ量が.oから削減される。(.sbssと同じ考え方)
シンボルテーブル
必要なシンボルテーブルの長さのみ格納される。
シンボル一覧
モジュールはユーザー定義型リストを持つ。
ユーザー定義型リスト
ユーザー定義型についての情報が0個以上格納されている。
エンジンではユーザー定義型の情報が1つにつきSSObjectTypeが1つ生成される。
項目
内容
例
シンボルのパス
文字列
BaseLib.Math.Vector3
継承しているクラスのパス
文字列
Foo
仮想関数テーブルリスト
別項:仮想関数テーブルリストを参照
変数リスト
別項:変数リストを参照
関数リスト
別項:関数リストを参照
仮想関数テーブルリスト
仮想関数テーブルについての情報が0個以上格納されている。
エンジンでは仮想関数テーブルの情報が1つにつきSSVirutalFuncTableが生成される。
項目
内容
例
シンボルのパス
文字列
BaseLib.IDrawable
仮想関数シンボルテーブル
SymbolTableIndexの配列
変数リスト
変数についての情報が0個以上格納されている。
エンジンでは変数の情報が1つにつきSSVariableが1つ生成される。
項目
内容
例
型を示すシンボルのパス
文字列
float
シンボル名
文字列
x
staticフラグ
bool(staticか否か)
readonlyフラグ
bool(readonlyか否か)
constフラグ
bool(constか否か)
関数リスト
関数についての情報が0個以上格納されている。
エンジンでは関数の情報が1つにつきSSFunctionが1つ生成される。
項目
内容
例
シンボル名
文字列
add
戻り値の型を示すシンボルのパス
文字列
BaseLib.Math.Vector3
戻り値のconstフラグ
bool(constか否か)
引数リスト
別項:引数リストを参照
staticフラグ
bool(staticか否か)
constフラグ
bool(constか否か)
命令コード
バイトコード
引数リスト
引数についての情報が0個以上格納されている。
エンジンでは引数の情報が1つにつきSSFunctionArgが1つ生成される。
項目
内容
例
型を示すシンボルのパス
文字列
float
constフラグ
bool(constか否か)
refフラグ
bool(refか否か)
シンボル解決情報
シンボルの種類は変数・関数・ユーザー定義型の3つ。
変数
項目
内容
例
代入先
定数テーブル or シンボルテーブル
-
シンボルパス
解決するシンボルのパス
BaseLib.Math.Vector3.x
シンボルの何を取得するのか。
・変数オブジェクト(SSVariableのポインタ)
・サイズ(u32)
・先頭からのオフセット距離(u32)
-
関数
項目
内容
例
代入先
シンボルテーブル
-
シンボルパス
解決するシンボルのパス
BaseLib.Math.Vector3.add
引数リスト
引数の型のリスト
属性
const,staticなどの属性
シンボルの何を取得するのか。
・関数オブジェクト(SSFunctionのポインタ)
-
ユーザー定義型
項目
内容
例
代入先
定数テーブル
-
シンボルパス
解決するシンボルのパス
BaseLib.Math.Vector3
シンボルの何を取得するのか。
・ユーザー定義型オブジェクト(SSObjectTypeのポインタ)
・サイズ(u32)
-