這裏是我的代碼:我用gdb調試堆棧和堆棧幀有什麼區別?
17 mov ebx,msg
18 mov edx,5
19 push ebx
,這裏是輸出我有:
Breakpoint 1, print() at hello.asm:17
(gdb) info register sp
sp: 0xbffff37c
(gdb) info stack
#0 print() at hello.asm:17
(gdb) step
(gdb) info register sp
sp: 0xbffff37c
(gdb) info stack
#0 print() at hello.asm:18
(gdb) step
(gdb) info register sp
sp: 0xbffff378
(gdb) info stack
#0 print() at hello.asm:19
很明顯嘛
push ebx
'減' 的註冊sp由4字節..但是,當我輸入
info stack
我仍然看到在hello.asm打印():19
我的問題是,什麼是信息堆棧顯示我的,什麼是我展示的信息登記藻?堆棧寄存器和信息堆棧之間的關係是什麼?
您是否設立了賞金獎勵其中一個答案或您錯過信息?我的意思是,你已經得到了2個正確的答案,或者沒有?否則,你需要指定你還不明白的東西。 – Blechdose
@Blechdose我不明白目前的答案。 –
我認爲你的問題的一個問題是,標題是「堆棧和堆棧幀之間有什麼區別?」並且在問題中您實際上詢問了不同的事情。您詢問軟件gdb「info stack」和「info register esp」的2個命令之間有什麼區別。 – Blechdose