私はLLDBを使用していますが、メモリ0xb0987654に値を印刷する方法を疑問に思っていますか?
Xcodeには非常に良いMemory Browserウィンドウがあり、メモリアドレスの内容を非常にうまく表示します。また、バイトのグループ化と表示されるバイト数を制御し、メモリページを前後に移動できます。
Access ^⌥⇧M(Xcode 9以前では⌘⇧M)を押すとアクセスできます
または
デバッグ->デバッグワークフロー->メモリの表示
検査するメモリアドレスを貼り付けることができる左下隅のフィールドに注目してください!
ここのドキュメント: https://developer.Apple.com/library/ios/recipes/xcode_help-debugger/articles/viewing_memory.html
ここに関連する回答: Xcode 4でメモリブラウザを開く方法
マイケルの答えを補完するために。
私は使用する傾向があります:
memory read -s1 -fu -c10000 0xb0987654 --force
デバッガーで印刷されます。
お役に立てれば。
「me
」は探しているコマンドです。
たとえば、次のlldbコマンド:
me -r -o /tmp/mem.txt -c512 0xb0987654
メモリアドレスから512バイトを/tmp/mem.txtのファイルにコピーします。
Lldbに固定長の型付き配列を表示するための簡単なトリックを次に示します。プログラムに9つの要素を指すlong *変数が含まれている場合、9つのlong値の固定配列を含む構造体型を宣言し、その型にポインターをキャストできます。
long *values = new long[9]{...};
(lldb) expr typedef struct { long values[9]; } l9; *(l9 *)values
(l9) $1 = {
values = {
[0] = 0
[1] = 1
[2] = 4
[3] = 9
[4] = 16
[5] = 25
[6] = 36
[7] = 49
[8] = 64
}
}
Cでコーディングしているときにtypedefを使用しますが、C++では必要ありません。
たとえば、長さ16x4バイトのメモリを印刷します。
x/16 0xb0987654