VisualStudioデバッガの小ネタです。
デバッガで外部のDLLにあるグローバル変数を見ようと思って、例えばGUObjectArray
などとウオッチ窓に入力しても「そんな変数はない!」と突っぱねられてしまいます。
外部DLLはUnrealEngineやVSのデバッガの中ではモジュール(Module)と呼ばれたりします。(※この行は検索クローラー用のテキスト)
そんなときは[dllの名前]![グローバル変数名]
とすることで変数を直接見ることが出来ちゃいます!便利!
例: UE4Editor-CoreUObject-Win64.dll!GUObjectArray
ちなみにGUObjectArrayはUnrealEngine中で全てのUObject継承オブジェクトとその付随情報を保持する巨大配列です。例えばGCの動作はUObjectを直接書き換えず、GUObjectArrayの構造体FUObjectItemの中にあるフラグを操作して行われていたりします。
UObjectBase::InternalIndexがこの配列へのインデックスになります。
リンク
UObjectの動作原理(GUObjectArray.ObjObjects.Objects[][]の直接参照の仕方について記載があります。)
https://hexadrive.jp/lab/43608/