rizin/test/db/analysis/golang
NOT XVilka ba8c170852
Migrate from Capstone to Zydis (x86 architecture) (#5164)
* Added build files [Capstone to Zydis]

* x86 Analysis [Capstone to Zydis]

* Changed x86 RzIL [Capstone to Zydis]

* Changed asm and arch files [Capstone to Zydis]

* Compilation, build error and test fixes [Capstone to Zydis]

* Test changes [Capstone to Zydis]

* Remaining changes [Capstone to Zydis]

* Added BE support [Capstone to Zydis]

---------

Co-authored-by: tushar3q34 <tushar3q34@gmail.com>
2025-05-23 13:03:46 +00:00

998 lines
34 KiB
Text

NAME=Resolve all symbols on a stripped linux go1.18 binary
FILE=bins/golang/example-server-1.18-stripped
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
ilq
EOF
EXPECT=<<EOF
4759
0x0063dfdc str.server.crt
0x0063e01e str.Reading_server_certificate:__s
0x0063e1d1 str.https:__localhost:8000
0x0063e20e str.Failed_get:__s
0x0063e2e4 str.Failed_reading_response_body:__s
0x0063e3af str.Got_response__d:__s__s
0x0063e49b str.version
0x0063e4ac str.HTTP_version
0x0063e566 str.
15389
bufio
bytes
compress/flate
compress/gzip
container/list
context
crypto
crypto/aes
crypto/cipher
crypto/des
crypto/dsa
crypto/ecdsa
crypto/ed25519
crypto/ed25519/internal/edwards25519
crypto/ed25519/internal/edwards25519/field
crypto/elliptic
crypto/elliptic/internal/fiat
crypto/elliptic/internal/nistec
crypto/hmac
crypto/internal/randutil
crypto/md5
crypto/rand
crypto/rc4
crypto/rsa
crypto/sha1
crypto/sha256
crypto/sha512
crypto/tls
crypto/x509
crypto/x509/pkix
encoding/asn1
encoding/base64
encoding/binary
encoding/hex
encoding/pem
errors
flag
fmt
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/cryptobyte
golang.org/x/crypto/curve25519
golang.org/x/crypto/curve25519/internal/field
golang.org/x/crypto/hkdf
golang.org/x/crypto/internal/poly1305
golang.org/x/net/dns/dnsmessage
golang.org/x/net/http/httpguts
golang.org/x/net/http/httpproxy
golang.org/x/net/http2
golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/sys/cpu
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
hash/crc32
internal/bytealg
internal/cpu
internal/fmtsort
internal/godebug
internal/intern
internal/itoa
internal/oserror
internal/poll
internal/reflectlite
internal/singleflight
internal/syscall/unix
internal/testlog
io
io/fs
io/ioutil
libc.so.6
log
math
math/big
math/rand
mime
mime/multipart
net
net/http
net/http/internal
net/http/internal/ascii
net/netip
net/textproto
net/url
os
path
path/filepath
reflect
runtime
runtime/debug
runtime/internal/atomic
runtime/internal/sys
runtime/internal/syscall
sort
strconv
strings
sync
sync/atomic
syscall
time
unicode
unicode/utf16
unicode/utf8
x_cgo_munmap
EOF
RUN
NAME=Resolve all symbols on a stripped linux go1.16 binary
FILE=bins/golang/example-server-1.16-stripped
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
ilq
EOF
EXPECT=<<EOF
4657
0x0066d583 str.server.crt
0x0066d5f3 str.Reading_server_certificate:__s
0x0066d722 str.https:__localhost:8000
0x0066d77c str.Failed_get:__s
0x0066d863 str.Failed_reading_response_body:__s
0x0066d9a3 str.Got_response__d:__s__s
0x0066db8c str.version
0x0066dbaa str.HTTP_version
0x0066dc76 str.
0x0066e68d str.Addr
;-- str.flag:
;-- str.sort:
;-- str.sync:
;-- str.AAAA:
14534
bufio
bytes
compress/flate
compress/gzip
container/list
context
crypto
crypto/aes
crypto/cipher
crypto/des
crypto/dsa
crypto/ecdsa
crypto/ed25519
crypto/ed25519/internal/edwards25519
crypto/elliptic
crypto/hmac
crypto/internal/randutil
crypto/md5
crypto/rand
crypto/rc4
crypto/rsa
crypto/sha1
crypto/sha256
crypto/sha512
crypto/tls
crypto/x509
crypto/x509/pkix
encoding/asn1
encoding/base64
encoding/binary
encoding/hex
encoding/pem
errors
flag
fmt
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/cryptobyte
golang.org/x/crypto/curve25519
golang.org/x/crypto/hkdf
golang.org/x/crypto/poly1305
golang.org/x/net/dns/dnsmessage
golang.org/x/net/http/httpguts
golang.org/x/net/http/httpproxy
golang.org/x/net/http2
golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/sys/cpu
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
hash/crc32
internal/bytealg
internal/cpu
internal/fmtsort
internal/oserror
internal/poll
internal/reflectlite
internal/singleflight
internal/syscall/unix
internal/testlog
io
io/fs
io/ioutil
libc.so.6
libpthread.so.0
log
math
math/big
math/rand
mime
mime/multipart
net
net/http
net/http/internal
net/textproto
net/url
os
path
path/filepath
reflect
runtime
runtime/debug
runtime/internal/atomic
runtime/internal/sys
sort
strconv
strings
sync
sync/atomic
syscall
time
unicode
unicode/utf16
unicode/utf8
EOF
RUN
NAME=Resolve all symbols on a stripped linux go1.12 binary
FILE=bins/golang/example-server-1.12-stripped
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
ilq
EOF
EXPECT=<<EOF
5406
0x0065d876 str.server.crt
0x0065d8e0 str.Reading_server_certificate:__s
0x0065da03 str.https:__localhost:8000
0x0065da57 str.Failed_get:__s
0x0065db5a str.Failed_reading_response_body:__s
0x0065dca5 str.Got_response__d:__s__s
0x0065de6d str.version
0x0065de8a str.HTTP_version
0x0065dfe6 str.
15100
bufio
bytes
compress/flate
compress/gzip
container/list
context
crypto
crypto/aes
crypto/cipher
crypto/des
crypto/dsa
crypto/ecdsa
crypto/elliptic
crypto/hmac
crypto/internal/randutil
crypto/md5
crypto/rand
crypto/rc4
crypto/rsa
crypto/sha1
crypto/sha256
crypto/sha512
crypto/subtle
crypto/tls
crypto/x509
crypto/x509/pkix
encoding/asn1
encoding/base64
encoding/binary
encoding/hex
encoding/pem
errors
flag
fmt
go
golang.org/x/net/http/httpguts
golang.org/x/net/http2
golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
hash
hash/crc32
internal/bytealg
internal/cpu
internal/fmtsort
internal/poll
internal/singleflight
internal/syscall/unix
internal/testlog
internal/x/crypto/chacha20poly1305
internal/x/crypto/cryptobyte
internal/x/crypto/curve25519
internal/x/crypto/hkdf
internal/x/crypto/internal/chacha20
internal/x/crypto/poly1305
internal/x/net/dns/dnsmessage
internal/x/net/http/httpguts
internal/x/net/http/httpproxy
internal/x/net/http2/hpack
internal/x/net/idna
internal/x/text/secure/bidirule
internal/x/text/transform
internal/x/text/unicode/bidi
internal/x/text/unicode/norm
io
io/ioutil
libc.so.6
libpthread.so.0
log
math
math/big
math/rand
mime
mime/multipart
mime/quotedprintable
net
net/http
net/http/httptrace
net/http/internal
net/textproto
net/url
os
path
path/filepath
reflect
runtime
runtime/cgo
runtime/debug
runtime/internal/atomic
sort
strconv
strings
sync
sync/atomic
syscall
time
unicode
unicode/utf8
EOF
RUN
NAME=Resolve all symbols on a linux go1.16 binary (arm32)
FILE=bins/golang/btcctl-linux-armv7-v0.22.0-beta
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
ilq
EOF
EXPECT=<<EOF
5124
0x00270aac str.Failed_to_read_data_from_stdin:__v
0x00270d70 str.s_command:__v
0x00270db8 str.1.0
0x002710ec str.Failed_to_unmarshal_result:__v
0x0027124c str.Failed_to_format_result:__v
0x00271338 str.PH2
0x0027140c str.s_command:__v__code:__s
0x002714b0 str.The___s__command_can_only_be_used_via_websockets
0x00271580 str.Unrecognized_command___s
0x00271608 str.No_command_specified
0x0027186c str.Chain_Server_Commands:DEBUG_HTTP2
0x0027187c str.Wallet_Server_Commands____wallet_:
0x00271ab4 str.PH2
0x00271bbc str.cannot_use__wallet_with__regtest__btcwallet_not_yet_compatible_with_regtest
0x00271e10 str.localhost
0x00272018 str.Use__s__h_to_show_options
0x002720ec str.btcwallet.conf
0x00272188 str.Error_creating_a_default_config_file:__v
0x00272618 str.s:_Multiple_network_params_can_t_be_used_together____choose_one
0x0027271c str.Error_parsing_config_file:__v
0x002727f8 str.btcd.conf
0x00272c0c str.m___s_rpcuser_____s
0x00272c60 str.m___s_rpcpass_____s
0x00272cb4 str.m___s_notls__0_1___:_s
0x00272e4c str.rpcuser__s_rpcpass__s
0x00272edc str.notls__s
0x00273460 str.http
0x0027347c str.:
0x00273514 str.POST
0x00273574 str.Content_Type
0x002735b4 str.application_json
0x0027373c str.error_reading_json_reply:__v
0x00273834 str.d__s
0x002738bc str.s
0x00273a58 str.https
0x00273b18 str.d._d._d
0x00273b50 str.beta
0x00273c20 str.s__s
0x00273d74 str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
0x00273efc str.linux
0x00273f0c str.btcd
0x00273f50 str.linux
0x00273f60 str.btcctl
0x00273fa4 str.linux
0x00273fb4 str.btcwallet
0x0027401c str.btcctl.conf
0x00274090 str.rpc.cert
0x00274104 str.rpc.cert
16168
bufio
bytes
compress/flate
compress/gzip
compress/zlib
container/list
context
crypto
crypto/aes
crypto/cipher
crypto/des
crypto/dsa
crypto/ecdsa
crypto/ed25519
crypto/ed25519/internal/edwards25519
crypto/elliptic
crypto/hmac
crypto/internal/randutil
crypto/md5
crypto/rand
crypto/rc4
crypto/rsa
crypto/sha1
crypto/sha256
crypto/sha512
crypto/tls
crypto/x509
crypto/x509/pkix
encoding/asn1
encoding/base64
encoding/binary
encoding/hex
encoding/json
encoding/pem
errors
fmt
github.com/btcsuite/btcd/btcec
github.com/btcsuite/btcd/btcjson
github.com/btcsuite/btcd/chaincfg
github.com/btcsuite/btcd/chaincfg/chainhash
github.com/btcsuite/btcd/txscript
github.com/btcsuite/btcd/wire
github.com/btcsuite/btclog
github.com/btcsuite/btcutil
github.com/btcsuite/btcutil/base58
github.com/btcsuite/go-socks/socks
github.com/jessevdk/go-flags
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/cryptobyte
golang.org/x/crypto/curve25519
golang.org/x/crypto/hkdf
golang.org/x/crypto/poly1305
golang.org/x/crypto/ripemd160
golang.org/x/net/dns/dnsmessage
golang.org/x/net/http/httpguts
golang.org/x/net/http/httpproxy
golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
hash/adler32
hash/crc32
internal/bytealg
internal/cpu
internal/fmtsort
internal/oserror
internal/poll
internal/reflectlite
internal/singleflight
internal/syscall/unix
internal/testlog
io
io/fs
io/ioutil
log
math
math/big
math/bits
math/rand
mime
mime/multipart
net
net/http
net/http/internal
net/textproto
net/url
os
os/user
path
path/filepath
reflect
regexp
regexp/syntax
runtime
runtime/debug
runtime/internal/atomic
sort
strconv
strings
sync
sync/atomic
syscall
time
unicode
unicode/utf16
unicode/utf8
EOF
RUN
NAME=Resolve all symbols on a linux go1.16 binary (arm64)
FILE=bins/golang/btcctl-linux-arm64-v0.22.0-beta
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
EOF
EXPECT=<<EOF
5070
0x0026b000 str.s_command:__v
0x0026b04c str.1.0
0x0026b310 str.tls:_invalid_server_key_share
0x0026b314 str.Failed_to_unmarshal_result:__v
0x0026b444 str.Failed_to_format_result:__v
0x0026b5dc str.s_command:__v__code:__s
0x0026b730 str.Failed_to_read_data_from_stdin:__v
0x0026b884 str.Not_enough_lines_provided_on_stdin
0x0026b998 str.The___s__command_can_only_be_used_via_websockets
0x0026b9d0 str.Specify__l_to_list_available_commands
0x0026ba70 str.Unrecognized_command___s
0x0026baa8 str.Specify__l_to_list_available_commands
0x0026bb00 str.No_command_specified
0x0026bc28 str.Chain_Server_Commands:DEBUG_HTTP2
0x0026bc3c str.Wallet_Server_Commands____wallet_:
0x0026bf1c str.testnet3
0x0026bf40 str.18334
0x0026c030 str.simnet
0x0026c054 str.18556
0x0026c064 str.regtest
0x0026c084 str.18334
0x0026c090 str.cannot_use__wallet_with__regtest__btcwallet_not_yet_compatible_with_regtest
0x0026c100 str.8334
0x0026c2c8 str.localhost
0x0026c2d0 str.localhost
0x0026c520 str.Use__s__h_to_show_options
0x0026c5f4 str.btcwallet.conf
0x0026c688 str.Error_creating_a_default_config_file:__v
0x0026c8ac str.testnet3
0x0026c8b4 str.mainnet
0x0026c8c4 str.simnet
0x0026c8d4 str.regtest
0x0026cad4 str.loadConfig
0x0026cae0 str.profilealloc_called_without_a_P_or_outside_bootstrapping
0x0026cae4 str.s:_Multiple_network_params_can_t_be_used_together____choose_one
0x0026cbd0 str.tls:_invalid_server_key_share
0x0026cbd4 str.Error_parsing_config_file:__v
0x0026ccb8 str.btcd.conf
0x0026cd6c str.version
0x0026cec4 str.The_special_parameter_____indicates_that_a_parameter_should_be_read_from_the_next_unread_line_from_standard_input.
0x0026d0a8 str.m___s_rpcuser_____s
0x0026d0fc str.m___s_rpcpass_____s
0x0026d150 str.m___s_notls__0_1___:_s
0x0026d2e0 str.rpcuser__s_rpcpass__s
0x0026d368 str.notls__s
0x0026d900 str.http
0x0026d908 str.https
0x0026d90c str.http
0x0026d928 str.:
0x0026d9c4 str.POST
0x0026da28 str.Content_Type
0x0026da70 str.application_json
0x0026dbe8 str.error_reading_json_reply:__v
0x0026dcec str.d__s
0x0026dd70 str.s
0x0026df84 str.d._d._d
0x0026dfc0 str.beta
0x0026e0a0 str.s__s
0x0026e1dc str.profilealloc_called_without_a_P_or_outside_bootstrapping
0x0026e1e0 str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
0x0026e370 str.linux
0x0026e384 str.btcd
0x0026e3d0 str.linux
0x0026e3e4 str.btcctl
0x0026e430 str.linux
0x0026e444 str.btcwallet
0x0026e4b8 str.btcctl.conf
0x0026e53c str.rpc.cert
0x0026e5c0 str.rpc.cert
16744
EOF
RUN
NAME=Resolve all symbols on a stripped mach0 go1.18 binary (arm64)
FILE=bins/golang/hello.mach0.stripped
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ sym.go.runtime.panicwrap ~str.
izq~?
izq~ slice bounds out of range
iI~compiler
ilq
EOF
EXPECT=<<EOF
1429
0x100006dd8 str.value_method
0x100006e48 str.called_using_nil
0x100006e64 str.pointer
0x100006eac str.panicwrap:_no___in
0x1000076d0 str.internal_error___misuse_of_itab
1709
0x10008bada 31 31 slice bounds out of range [:%x]
0x10008babb 31 31 slice bounds out of range [%x:]
0x10008be19 32 32 slice bounds out of range [::%x]
0x10008bdf9 32 32 slice bounds out of range [:%x:]
0x10008bdd9 32 32 slice bounds out of range [%x::]
0x10008dbfa 46 46 slice bounds out of range [:%x] with length %y
0x10008ddcf 48 48 slice bounds out of range [:%x] with capacity %y
0x10008c235 33 33 slice bounds out of range [%x:%y]
0x10008dd40 47 47 slice bounds out of range [::%x] with length %y
0x10008dfe8 49 49 slice bounds out of range [::%x] with capacity %y
0x10008c5a0 34 34 slice bounds out of range [:%x:%y]
0x10008c57e 34 34 slice bounds out of range [%x:%y:]
0x10008a871 25 25 slice bounds out of range
compiler go1.18 (cmd -compiler=gc CGO_ENABLED=1 CGO_CFLAGS= CGO_CPPFLAGS= CGO_CXXFLAGS= CGO_LDFLAGS= GOARCH=arm64 GOOS=darwin)
/usr/lib/libSystem.B.dylib
errors
fmt
go
internal/bytealg
internal/cpu
internal/fmtsort
internal/itoa
internal/oserror
internal/poll
internal/reflectlite
internal/syscall/unix
internal/testlog
io
io/fs
os
path
reflect
runtime
runtime/debug
sort
strconv
sync
sync/atomic
syscall
time
unicode
unicode/utf8
EOF
RUN
NAME=Resolve all symbols on a stripped PE go1.12 binary (x64)
FILE=bins/golang/hello_go_strip.exe
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
iI~compiler
ilq
EOF
EXPECT=<<EOF
1788
0x004a699b str.hello__hacktivity
0x004a69d5 str.reflect.__funcTypeFixed64_.AssignableTo
9557
compiler go1.15 Linker 03.00
errors
fmt
go
internal/bytealg
internal/cpu
internal/fmtsort
internal/oserror
internal/poll
internal/reflectlite
internal/syscall/windows
internal/syscall/windows/registry
internal/syscall/windows/sysdll
io
kernel32.dll
math
os
reflect
runtime
runtime/debug
runtime/internal/atomic
runtime/internal/sys
sort
strconv
sync
sync/atomic
syscall
time
unicode
unicode/utf16
unicode/utf8
EOF
RUN
NAME=Parse Golang 1.18 BuildInfo ELF
FILE=bins/golang/GoReSym_118_tip_stripped
CMDS=iI~compiler
EXPECT=<<EOF
compiler devel go1.18-2d1d548 Tue Dec 21 03:55:43 2021 +0000 (path github.com/stevemk14ebr/GoReSym mod github.com/stevemk14ebr/GoReSym (devel) dep golang.org/x/arch v0.0.0-20201008161808-52c3e6f60cff h1:XmKBi9R6duxOB3lfc72wyrwiOY7X2Jl1wuI+RFOyMDE= -compiler=gc -ldflags=-s -w CGO_ENABLED=1 CGO_CFLAGS= CGO_CPPFLAGS= CGO_CXXFLAGS= CGO_LDFLAGS= GOARCH=amd64 GOOS=linux GOAMD64=v1 vcs=git vcs.revision=4bd670890aee5a14e36be1a72d19ca8573f2433b vcs.time=2021-12-06T17:40:21Z vcs.modified=true)
EOF
RUN
NAME=Parse Golang 1.18 MIPS BE Strings
FILE=bins/golang/go-re-sample-linux-mips
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x000be5ec lui v1, 0xd ; 0xd3417 ; "foogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFLisu"
| 0x000be670 lui at, 0xd ; 0xd3860 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
| 0x000be6a8 lui v1, 0xd ; 0xd3503 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDograErro"
| 0x000be700 lui v0, 0xd ; 0xd340e ; "barendfinfoogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOG"
| 0x000be784 lui at, 0xd ; 0xd360f ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
| 0x000be7dc lui v0, 0xf ; 0xd914e ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x000be8e4 lui v0, 0xf ; 0xd54fc ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x000be940 lui v0, 0xf ; 0xd3aae ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= pointer stack=[ status ) errno=48828125"
| 0x000be9d4 lui a0, 0xf ; 0xd38af ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000beab8 lui v0, 0xf ; 0xd550c ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x000beb14 lui v0, 0xf ; 0xd3ca6 ; " enable: (forced) B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ runtime= "
| 0x000beb9c lui v0, 0xf ; 0xd38a8 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x000bec38 lui a0, 0xf ; 0xd38af ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000becbc lui at, 0xf ; 0xd914e ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Parse Golang 1.18 MIPS LE Strings
FILE=bins/golang/go-re-sample-linux-mipsle
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x000be5d0 lui v1, 0xd ; 0xd3416 ; "foogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFLisu"
| 0x000be654 lui at, 0xd ; 0xd385f ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
| 0x000be68c lui v1, 0xd ; 0xd3502 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDograErro"
| 0x000be6e4 lui v0, 0xd ; 0xd340d ; "barendfinfoogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOG"
| 0x000be768 lui at, 0xd ; 0xd360e ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
| 0x000be7c0 lui v0, 0xf ; 0xd914d ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x000be8c8 lui v0, 0xf ; 0xd54fb ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x000be924 lui v0, 0xf ; 0xd3aad ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= pointer stack=[ status ) errno=48828125"
| 0x000be9b8 lui a0, 0xf ; 0xd38ae ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000bea9c lui v0, 0xf ; 0xd550b ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x000beaf8 lui v0, 0xf ; 0xd3ca5 ; " enable: (forced) B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ runtime= "
| 0x000beb7c lui v0, 0xf ; 0xd38a7 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x000bec18 lui a0, 0xf ; 0xd38ae ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000bec9c lui at, 0xf ; 0xd914d ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Parse Golang 1.18 MIPS64 BE Strings
FILE=bins/golang/go-re-sample-linux-mips64
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x000c0378 lui v1, 0xe ; 0xe7d69 ; "foogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
| 0x000c040c lui at, 0xf ; 0xe81b6 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
| 0x000c0448 lui v1, 0xe ; 0xe7e54 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
| 0x000c04a8 lui v0, 0xe ; 0xe7d60 ; "barendfinfoogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
| 0x000c053c lui at, 0xe ; 0xe7f65 ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
| 0x000c05a0 lui v0, 0x11 ; 0xedacb ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x000c06c4 lui v0, 0x11 ; 0xe9e6b ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x000c0730 lui v0, 0x11 ; 0xe8404 ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
| 0x000c07dc lui at, 0x11 ; 0xe8205 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000c08d8 lui v0, 0x11 ; 0xe9e7b ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x000c0944 lui v0, 0x11 ; 0xe8604 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
| 0x000c09e4 lui v0, 0x11 ; 0xe81fe ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x000c0a98 lui at, 0x11 ; 0xe8205 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000c0b34 lui at, 0x11 ; 0xedacb ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Parse Golang 1.18 MIPS64 LE Strings
FILE=bins/golang/go-re-sample-linux-mips64le
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x000c0360 lui v1, 0xe ; 0xe7d6b ; "foogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
| 0x000c03f4 lui at, 0xf ; 0xe81b8 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
| 0x000c0430 lui v1, 0xe ; 0xe7e56 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
| 0x000c0490 lui v0, 0xe ; 0xe7d62 ; "barendfinfoogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
| 0x000c0524 lui at, 0xe ; 0xe7f67 ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
| 0x000c0588 lui v0, 0x11 ; 0xedacd ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x000c06ac lui v0, 0x11 ; 0xe9e6d ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x000c0718 lui v0, 0x11 ; 0xe8406 ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
| 0x000c07c4 lui at, 0x11 ; 0xe8207 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000c08c0 lui v0, 0x11 ; 0xe9e7d ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x000c092c lui v0, 0x11 ; 0xe8606 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
| 0x000c09c8 lui v0, 0x11 ; 0xe8200 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x000c0a7c lui at, 0x11 ; 0xe8207 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x000c0b18 lui at, 0x11 ; 0xedacd ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Parse Golang 1.18 PPC64 BE Strings
FILE=bins/golang/go-re-sample-linux-ppc64
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x00099f7c lis r5, 0xb ; 0xb7d3f ; "foogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
| 0x00099fec lis r4, 0xc ; 0xb8198 ; "enableerrno objectpower9selectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs "
| 0x0009a00c lis r4, 0xb ; go-re-sample.go:12 ; 0xb7e32 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
| 0x0009a050 lis r9, 0xb ; 0xb7d36 ; "barendfinfoogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
| 0x0009a0c0 lis r4, 0xb ; 0xb7f48 ; "levellink mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27"
| 0x0009a108 lis r9, 0xd ; 0xbd867 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x0009a1cc lis r8, 0xd ; 0xb9bf0 ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x0009a218 lis r8, 0xd ; 0xb83ec ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
| 0x0009a290 lis r7, 0xd ; 0xb81ed ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x0009a330 lis r8, 0xd ; 0xb9c00 ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x0009a37c lis r8, 0xd ; 0xb85f0 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
| 0x0009a3f4 lis r8, 0xd ; 0xb81e6 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x0009a470 lis r7, 0xd ; 0xb81ed ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x0009a4cc lis r8, 0xd ; 0xbd867 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Parse Golang 1.18 PPC64 LE Strings
FILE=bins/golang/go-re-sample-linux-ppc64le
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x00099eac lis r5, 0xb ; 0xb7d60 ; "foogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
| 0x00099f1c lis r4, 0xc ; 0xb81b9 ; "enableerrno objectpower9selectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs "
| 0x00099f3c lis r4, 0xb ; go-re-sample.go:12 ; 0xb7e53 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
| 0x00099f80 lis r9, 0xb ; 0xb7d57 ; "barendfinfoogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
| 0x00099ff0 lis r4, 0xb ; 0xb7f69 ; "levellink mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27"
| 0x0009a038 lis r9, 0xd ; 0xbd845 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x0009a0f0 lis r8, 0xd ; 0xb9bf3 ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x0009a13c lis r8, 0xd ; 0xb840d ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
| 0x0009a1b4 lis r7, 0xd ; 0xb820e ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x0009a248 lis r8, 0xd ; 0xb9c03 ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x0009a294 lis r8, 0xd ; 0xb8610 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
| 0x0009a308 lis r8, 0xd ; 0xb8207 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x0009a384 lis r7, 0xd ; 0xb820e ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x0009a3e0 lis r8, 0xd ; 0xbd845 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Parse Golang 1.18 riscv64 Strings
FILE=bins/golang/go-re-sample-linux-riscv64
CMDS=<<EOF
aalg
s main
e asm.cmt.col=0
pdr~"
EOF
EXPECT=<<EOF
| 0x00099898 auipc t2, 0x1e ; 0xb7b60 ; "foogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFLisu"
| 0x00099910 auipc t0, 0x1e ; 0xb7f74 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
| 0x00099944 auipc t2, 0x1e ; 0xb7c70 ; "namepc profra roots + s0 s1 s10 s11 s2 s3 s4 s5 s6 s7 s8 s9 sbrksp t0 t1 t2 t3 t4 t5 t6 tp trueuint -%s .."
| 0x00099998 auipc t2, 0x1e ; 0xb7b57 ; "barendfinfoogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOG"
| 0x00099a10 auipc t0, 0x1e ; 0xb7dd8 ; "levelmheappanicscav schedsleepslicesudogsweeptracetrap:uint8valuewrite B -> Value addr= alloc base code= ctxt: curg= free goi"
| 0x00099a60 auipc t1, 0x3e ; 0xbd602 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
| 0x00099b4c auipc t1, 0x3e ; 0xb99cd ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
| 0x00099ba4 auipc t1, 0x3e ; 0xb81c2 ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
| 0x00099c30 auipc s0, 0x3e ; 0xb7fc3 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x00099cf8 auipc t1, 0x3e ; 0xb99dd ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
| 0x00099d50 auipc t1, 0x3e ; 0xb83c2 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
| 0x00099dd0 auipc t1, 0x3e ; 0xb7fbc ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
| 0x00099e64 auipc s0, 0x3e ; 0xb7fc3 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
| 0x00099edc auipc t0, 0x3e ; 0xbd602 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
EOF
RUN
NAME=Resolve all symbols on a stripped windows go1.21 binary
FILE=bins/golang/go-re-sample-windows-amd64-go121.exe
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
EOF
EXPECT=<<EOF
1604
0x00490237 str.foo
0x00490292 str.enable
0x004902a0 str.enable
0x004902b0 str.name
0x004902c0 str.name
0x004902f2 str.bar
0x0049034d str.level
0x0049035b str.level
0x00490448 str.subcommand__bar
0x00490495 str.level:
0x0049051d str.tail:
0x004905c2 str.subcommand__foo
0x00490615 str.enable:
0x00490692 str.name:
0x0049071e str.tail:
0x00490780 str.expected__foo__or__bar__subcommands
20682
EOF
RUN
NAME=Resolve all symbols on a stripped linux go1.21 binary
FILE=bins/golang/go-re-sample-linux-amd64-go121
CMDS=<<EOF
aalg
fl~sym.go.~?
pdfs @ main ~str.
izq~?
EOF
EXPECT=<<EOF
1587
0x004875b7 str.foo
0x00487612 str.enable
0x00487620 str.enable
0x00487630 str.name
0x00487640 str.name
0x00487672 str.bar
0x004876cd str.level
0x004876db str.level
0x004877c8 str.subcommand__bar
0x00487815 str.level:
0x0048789d str.tail:
0x00487942 str.subcommand__foo
0x00487995 str.enable:
0x00487a12 str.name:
0x00487a9e str.tail:
0x00487b00 str.expected__foo__or__bar__subcommands
3604
EOF
RUN