gdb を使用して基本的な C プログラムを実行しています。の先頭にブレークポイントがありmain()
ます。コードを実行した後、gdb は予想どおり main() で中断します。スタック ポインター レジスター (rsp) を調べると、
0x7fffffffe170: 0x00000000.
cat /proc/17232/stat | cut -d" " -f29/proc
(17232 はこのプロセスの pid です) を使用して同じ情報を取得すると、次のように表示されます。
140737488347112 (which in hex is: 0x7fffffffdfe8).
現在のスタック ポインターの値が gdb と異なるのはなぜですか。また、gdb が rsp の内容を NULL (0x00000000) として表示するのはなぜですか?
ありがとう。