2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

外部のDLLにあるグローバル変数をVSデバッガで見る

Last updated at Posted at 2022-01-19

VisualStudioデバッガの小ネタです。
デバッガで外部のDLLにあるグローバル変数を見ようと思って、例えばGUObjectArrayなどとウオッチ窓に入力しても「そんな変数はない!」と突っぱねられてしまいます。
外部DLLはUnrealEngineやVSのデバッガの中ではモジュール(Module)と呼ばれたりします。(※この行は検索クローラー用のテキスト)

そんなときは[dllの名前]![グローバル変数名]とすることで変数を直接見ることが出来ちゃいます!便利!
例: UE4Editor-CoreUObject-Win64.dll!GUObjectArray

image.png

ちなみにGUObjectArrayはUnrealEngine中で全てのUObject継承オブジェクトとその付随情報を保持する巨大配列です。例えばGCの動作はUObjectを直接書き換えず、GUObjectArrayの構造体FUObjectItemの中にあるフラグを操作して行われていたりします。
UObjectBase::InternalIndexがこの配列へのインデックスになります。

リンク

UObjectの動作原理(GUObjectArray.ObjObjects.Objects[][]の直接参照の仕方について記載があります。)
https://hexadrive.jp/lab/43608/

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?