[M1 Mac, Big Sur 11.6.8, clang 13.0.0, NO IDE]
# LLDB # コマンド
LLDBを使って変数のアドレスを調べています。
ゆくゆくはアセンブリ言語で簡単なコードを書くつもりなので、C++ではなくC言語で書いていきます。
今回はchar、char*について調べました。ポインタ自身のアドレスがわからなかったのですが、memory readコマンドの結果を照らし合わせて突き止めることができました。
下図の青線で囲んだところがポインタのようです。メモリアドレスが書かれています。変数にほぼ隣接した下位側に位置しています。
#include <stdio.h>
int main() {
int i = 1000;
char c[6] = {'a', 'b', 'c', 'd', 'e'};
char* c_ptr = 'xyz';
printf("i: %d\n", i);
printf("c: %s\n", &c);
printf("c_ptr: %s\n", &c_ptr);
return 0;
}
--------------------------------------------------
出力
--------------------------------------------------
i: 1000
c: abcde
c_ptr: zyx // なぜ逆さになるのかは不明