* Changed behavior of `f` to only add flag if there is none * Changed behavior of `f+` to add flag in any case * Moved listing subcommands from `f` to `fl` * Moved listing subcommands from `f.` to `f.l` * Added subcommand `f.l*` to list all local flags in all functions * Listing flags at the current offset became `fl.` * Moved `f=` to `fl=` * Old `fl` (flag length) now became `fL` * Removed original `fe` commands * Old `f?` (check if flag exists) now became `fe` * Removed `fV` commands * Removed `fn` commands in favor of `fl` and `asm.flags.real=true` * Removed `fS` commands (`fSo` and `fSn`) * `fo` became `fortune` and moved from "flags" to "shell" category * Removed oldshell handlers of the `z` commands
93 lines
1.6 KiB
Text
93 lines
1.6 KiB
Text
NAME=ps+ libc++ 32bit
|
|
FILE=bins/elf/stdstring32-libc++.LOAD1
|
|
ARGS=-n -m 0x08049ee8
|
|
CMDS=<<EOF
|
|
on bins/elf/stdstring32-libc++.heap 0x09eb8000 > /dev/null
|
|
f obj.empty_str 12 @ 0x0804a064
|
|
f obj.long_str1 12 @ 0x0804a04c
|
|
f obj.short_str1 12 @ 0x0804a034
|
|
f obj.long_str2 12 @ 0x0804a058
|
|
f obj.short_str2 12 @ 0x0804a040
|
|
e asm.bits=32
|
|
ps+ @ obj.short_str1
|
|
ps+ @ obj.short_str2
|
|
ps+ @ obj.empty_str
|
|
ps+ @ obj.long_str1
|
|
ps+ @ obj.long_str2
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a
|
|
abcdefghij
|
|
|
|
abcdefghijk
|
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ps+ libc++ 64bit
|
|
FILE=bins/elf/stdstring64-libc++.LOAD1
|
|
ARGS=-n -m 0x00600dc8
|
|
CMDS=<<EOF
|
|
on bins/elf/stdstring64-libc++.heap 0x0128b000 > /dev/null
|
|
f obj.empty_str 24 @ 0x006010b8
|
|
f obj.long_str1 24 @ 0x00601088
|
|
f obj.short_str1 24 @ 0x00601058
|
|
f obj.long_str2 24 @ 0x006010a0
|
|
f obj.short_str2 24 @ 0x00601070
|
|
e asm.bits=64
|
|
ps+ @ obj.short_str1
|
|
ps+ @ obj.short_str2
|
|
ps+ @ obj.empty_str
|
|
ps+ @ obj.long_str1
|
|
ps+ @ obj.long_str2
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a
|
|
abcdefghijklmnopqrstuv
|
|
|
|
abcdefghijklmnopqrstuvw
|
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
|
|
EOF
|
|
RUN
|
|
|
|
NAME=psx escapes newlines (#10037)
|
|
FILE==
|
|
CMDS=<<EOF
|
|
wz abc\n123\n
|
|
psx 9
|
|
EOF
|
|
EXPECT=<<EOF
|
|
abc\x0a123\x0a\x00
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ps N and initial nulls (#10037)
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ps 1
|
|
ps 2
|
|
ps 3
|
|
ps 4
|
|
ps 8
|
|
EOF
|
|
EXPECT=<<EOF
|
|
\x00
|
|
\x00\x00
|
|
\x00\x00\x00
|
|
\x00\x00\x00\x00
|
|
\x00\x00\x00\x00\x00\x00\x00\x00
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ps+ libc++ 16bit error
|
|
FILE==
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=16
|
|
f obj.empty_str 12 @ 0x0804a064
|
|
ps+ @ obj.empty_str
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
Error: bitness of 16 not supported
|
|
EOF
|
|
RUN
|