代码拉取完成,页面将自动刷新
x86 ebp
| ... ... | | return addr | ebp -> | prev ebp | | ... ... | esp -> | ... ... |
frame 0: scheduler ebp=0x80115488
| ... ... | | 0x8010303f | ebp -> | 0x801154a8 | 0x80115488 | ... ... | esp -> | ... ... |
frame 1: mpmain ebp=0x80115488
| ... ... | | 0x8010318c | ebp -> | 0x801154c8 | 0x801154a8 | ... ... | esp -> | ... ... |
frame 2: main ebp=0x80115488
| ... ... | | 0x00000000 | ebp -> | 0x00007bf8 | 0x801154c8 | ... ... | esp -> | ... ... |
(gdb) backtrace #0 scheduler () at proc.c:324 #1 0x8010303f in mpmain () at main.c:57 #2 0x8010318c in main () at main.c:37
违反 x86 call convention
(gdb) bt #0 swtch () at swtch.S:25 #1 0x00000000 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) p/x $esp $3 = 0x8dffff9c (gdb) p/x $ebp $4 = 0x80115488
(gdb) bt #0 exec (path=0x1c "", argv=0x8dfffed0) at exec.c:104 #1 0x801055aa in sys_exec () at sysfile.c:418 #2 0x80104a89 in syscall () at syscall.c:139 #3 0x80105aad in trap (tf=0x8dffffb4) at trap.c:42 #4 0x8010584f in alltraps () at trapasm.S:20
alltraps 里面的 通过汇编执行下一条指令来
pushl %esp
call trap
addl $4, %esp
# Return falls through to trapret...
.globl trapret
trapret:
popal
popl %gs
popl %fs
popl %es
popl %ds
addl $0x8, %esp # trapno and errcode
iret
esp => 0x00000000 next PC = 0
(gdb) x/4x $esp 0x8dffffec: 0x00000000 0x0000001b 0x00000202 0x00002fe4 (gdb)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。