NAME=dbg.stepback
FILE=bins/elf/analysis/ls-linux-x86_64-zlul
ARGS=-d -e dbg.bpsysign=true
CMDS=<<EOF
echo ================================ db
db @ main
echo ================================ db2
db @ 0x004028b6
echo ================================ dc
dc
echo ================================ dts+
dts+
echo ================================ dc
dc
echo ================================ dr rip
dr rip
echo ================================ dr rsp
$rsp_after=$`dr rsp`
echo ================================ 2dsb
2dsb
echo ================================ dr rip
dr rip
echo ================================ v
%v `dr rsp~[1]`-`$rsp_after~[1]`
EOF
EXPECT=<<EOF
================================ db
================================ db2
================================ dc
================================ dts+
================================ dc
================================ dr rip
rip = 0x00000000004028b6
================================ dr rsp
================================ 2dsb
================================ dr rip
rip = 0x00000000004028af
================================ v
0x3c8
EOF
RUN

NAME=debug stepback from callee
FILE=bins/elf/analysis/calls_x64
ARGS=-d
CMDS=<<EOF
db @ main
db @ 0x00400510
dc
dts+
dc
dr rax
dr rip
$rsp_after=$`dr rsp`
dsb
dsb
dr rax
dr rip
%v `dr rsp~[1]`-`$rsp_after~[1]`
EOF
EXPECT=<<EOF
rax = 0x0000000000600980
rip = 0x0000000000400510
rax = 0x0000000000600980
rip = 0x000000000040056e
0x30
EOF
RUN

NAME=debug stepback from caller
FILE=bins/elf/analysis/calls_x64
ARGS=-d -e dbg.bpsysign=true
CMDS=<<EOF
wao nop @ 0x00400529
db @ main
db @ 0x0040057c
dc
dts+
dc
dsb
dsb
dr rip
EOF
EXPECT=<<EOF
rip = 0x000000000040053b
EOF
RUN
