1
我正在使用dbx在IBM AIX下進行調試。我看到以下內容:什麼可能導致以下程序集執行結果
(dbx) print $r4
0x00000001614aa050
(dbx) print *((int64*)0x00000001614aa050)
-1
(dbx) print $r3
0x0000000165e08468
Then I "stepi" my 64bit program which executed the following instruction:
std r3,0x0(r4)
然後我立即檢查該內存的內容:
(dbx) print *((int64*)0x00000001614aa050)
-1
還是-1?我期待在$ r3中的內容應該保存到那個內存中 。我然後手動指定值來使用我 變量地址:
(dbx) print &bmc._pLong
0x00000001614aa050
(dbx) assign bmc._pLong=(int64 *)0x0000000165e08468
(dbx) print *((int64*)0x00000001614aa050)
6004180072 (which is 0x0000000165e08468)
怎麼可能發生呢?