NAME=dbg.stepback
FILE=bins/elf/analysis/ls-linux-x86_64-zlul
ARGS=-d -e dbg.bpsysign=true
CMDS=<<EOF
db @ main
db @ 0x004028fe
dc
dts+
dc
dsb
dsb
dr rbx
dr rcx
dr r12
dr rip
dk 9
EOF
EXPECT=<<EOF
rbx = 0x00000001
rcx = 0x736c6974756572
r12 = 0x00404870
rip = 0x004028f9
EOF
RUN

NAME=debug stepback from callee
FILE=bins/elf/analysis/calls_x64
ARGS=-d
CMDS=<<EOF
db @ main
db @ 0x0040052f
dc
dts+
dc
dr rax
dr rbx
dr rcx
dr r10
dr rbp
dr rip
dsb
dsb
dr rax
dr rbx
dr rcx
dr r10
dr rbp
dr rip
dk 9
EOF
EXPECT=<<EOF
rax = 0x00400574
rbx = 0x00400590
rcx = 0x00400590
r10 = 0xfffffffffffff30e
rbp = 0x00000000
rip = 0x0040052f
rax = 0x00400574
rbx = 0x00400590
rcx = 0x00400590
r10 = 0xfffffffffffff30e
rbp = 0x00000000
rip = 0x00400575
EOF
RUN

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