NAME=dbg.trace.loop.swstep
FILE=bins/elf/analysis/x64-loop
ARGS=-d
CMDS=<<EOF
e scr.color=0
e dbg.swstep=true
db @ sym.called_in_loop
dbc dr PC @ sym.called_in_loop
dbte @ sym.called_in_loop
dc
EOF
EXPECT=<<EOF
rip = 0x00000000004004ed
rip = 0x00000000004004ed
rip = 0x00000000004004ed
EOF
RUN

NAME=dbg.trace.loop.hwstep
FILE=bins/elf/analysis/x64-loop
ARGS=-d
CMDS=<<EOF
e scr.color=0
e dbg.swstep=false
db @ sym.called_in_loop
dbc dr PC @ sym.called_in_loop
dbte @ sym.called_in_loop
dc
EOF
EXPECT=<<EOF
rip = 0x00000000004004ed
rip = 0x00000000004004ed
rip = 0x00000000004004ed
EOF
RUN

NAME=dbg.trace instructions
FILE=bins/elf/analysis/x86-simple
ARGS=-d
BROKEN=1
CMDS=<<EOF
ds
sr eip
e dbg.trace = true
2ds
"pi 1 @ `atd~:0[3]`;pi 1 @ `atd~:1[3]`"
EOF
EXPECT=<<EOF
pop ebx
mov eax, 1
EOF
RUN

NAME=missing main stack frame fix (#3806)
FILE=bins/elf/analysis/calls_x64
ARGS=-d
CMDS=<<EOF
dcu main
dbt
echo ----
dsui call; ds
dbt~[6-]  # dbtt here would be nice
EOF
REGEXP_FILTER_OUT=((loc\.[^_]\S*)|(main\s?\S*)|(entry0\+\d+)|(----))
EXPECT=<<EOF
main loc.func_6+6
entry0+41
----
loc.func_0
main+8
entry0+41
EOF
REGEXP_FILTER_ERR=ERROR.*\n
EXPECT_ERR=<<EOF
EOF
RUN
