rizin/test/db/cmd/cmd_ax
Anton Angelov 95f94ae258
refactor: SwissTable implementation for ht (#5860)
* Add ht benchmarks
* Initial implementation
* Finalize native per-group lookup support
* Lookup SSE2 implementation
* Improve hashing
* Add support for custom elem_size
* Avoid double h2 hashing when reserving slot
* Make custom elem_size support conditional
* Fix issues with bitwise and default lookup implementations
* Implement deletion trick optimization
* Track growth_size instead of deleted_slots
* Refactor SDB to access ht via API instead of internals
* Modify SDB tests which rely on hashtable order
* Fix SDB build warnings
* Fix bug with finding next power of two
* foreach_kv to return a bool result
* Change SDB diff order expected by serialize_analysis unit test
* Fix bug in the bitwise lookup implementation
* Remove second call to rz_core_init() which causes memory leaks
* Update some regression tests to accept reordered output
* Adapt ht clear to new implementation
* Use fini_kv_pair and fix 1 potential leak on malloc failure
* Fix cmd/types test after merge
* Avoid second call to calsize_key and avoid iter leaks on malloc failure
* Improve hash distribution
* Extend benchmark suite
* Fix bug with string hashing
* Branchless write to mirrored ctrl bytes
* Simplify string hash and remove potential UB
* Move RZ_PREFETCH macro to rz_types.h
* Add SSE2 discovery in Meson
* Forward SDB string hash function to ht string hash
* Try to revert test_cpu_profiles() to avoid relying on a baked SDB file
* Revert SDB/CDB hash function change
* Fix SDB reference to HT hash function instead of CDB hash
* Change calloc to malloc
* Avoid storing/checking key_len and key_value if they are ut64
* Improve string hash function
* Rename default hash functions
* Improve bench code
* linter.yml: set clang-path to point to llvm-18
2026-03-02 12:31:35 +08:00

98 lines
No EOL
3 KiB
Text

NAME=axtj nofunc noflag (#11667)
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=<<EOF
e analysis.jmp.cref=true
aaa
s 0x804969c
axl~0x804969c
axtj~{}
EOF
EXPECT=<<EOF
section..plt+6 0x80482c6 -> CODE -> 0x804969c section..got.plt+8
[
{
"from": 134513350,
"to": 134518428,
"type": "CODE"
}
]
EOF
RUN
NAME=axf
FILE==
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
s 0
ax 0x42
ax 0x43
axC 0x44
f someflag @ 0x43
axf
EOF
EXPECT=<<EOF
0x42 add byte [rax], al
0x43 someflag
C 0x44 add byte [rax], al
EOF
RUN
NAME=axlj
FILE=bins/elf/analysis/hello-utf-16
CMDS=<<EOF
aa
s sym.imp.wprintf
axlj~{[0].to}
EOF
EXPECT=<<EOF
6295544
EOF
RUN
NAME=axtl
FILE=bins/elf/vim
CMDS=<<EOF
aaa
axtl @ sym.mf_write
EOF
EXPECT=<<EOF
;------------------------------------------
void sym.mf_release(unsigned long arg1, int64_t arg2, int64_t arg_28h, int64_t arg_20h, int64_t arg_30h, int64_t arg_498h, int64_t arg_38h, int64_t arg_48h, int64_t arg_40h, int64_t arg_10h);
; Xref from: sym.mf_release @ 0x00219836
| : 0x00219830 mov rsi, rbx ; int64_t arg2
| : 0x00219833 mov rdi, rbp ; int64_t arg1
| : 0x00219836 call sym.mf_write
| : 0x0021983b test eax, eax
| `=< 0x0021983d jz 0x2197b0
| 0x00219843 mov rax, qword [rbx+0x18]
;------------------------------------------
void sym.mf_sync(int64_t arg1, int64_t arg2, int64_t arg_49ch, int64_t arg_10h, int64_t arg_490h);
; Xref from: sym.mf_sync @ 0x0021a454
| ; CODE XREF from sym.mf_sync @ 0x21a5c3
| 0x0021a44e mov rsi, rbx ; int64_t arg2
| 0x0021a451 mov rdi, rbp ; int64_t arg1
| 0x0021a454 call sym.mf_write
| 0x0021a459 test eax, eax
| ,=< 0x0021a45b jnz 0x21a469
| | 0x0021a45d test r13d, r13d
;------------------------------------------
void sym.mf_sync(int64_t arg1, int64_t arg2, int64_t arg_49ch, int64_t arg_10h, int64_t arg_490h);
; Xref from: sym.mf_sync @ 0x0021a59d
| 0x0021a597 mov rdi, rbp ; int64_t arg1
| 0x0021a59a xor r13d, r13d
| 0x0021a59d call sym.mf_write
| 0x0021a5a2 test eax, eax
| 0x0021a5a4 setnz r13b
| 0x0021a5a8 test r14d, r14d
;------------------------------------------
void sym.mf_release_all(int64_t arg_10h, int64_t arg_28h, int64_t arg_20h, int64_t arg_30h, int64_t arg_498h, int64_t arg_38h, int64_t arg_48h, int64_t arg_40h);
; Xref from: sym.mf_release_all @ 0x0021a756
| : 0x0021a750 mov rsi, rbx ; int64_t arg2
| : 0x0021a753 mov rdi, rbp ; int64_t arg1
| : 0x0021a756 call sym.mf_write
| : 0x0021a75b test eax, eax
| `=< 0x0021a75d jz 0x21a726
| 0x0021a75f mov rax, qword [rbx+0x18]
EOF
RUN