rizin/test/db/cmd/tables
wargio fbad0b4859 Remove agd and add rz_analysis_similarity/match + refactoring
- Introduce the following new methods:
  * `rz_analysis_similarity_basic_block()`
  * `rz_analysis_similarity_function()`
  * `rz_analysis_similarity_basic_block_2()`
  * `rz_analysis_similarity_function_2()`
  * `rz_analysis_match_basic_blocks()`
  * `rz_analysis_match_functions()`
  * `rz_analysis_match_basic_blocks_2()`
  * `rz_analysis_match_functions_2()`
- Remove `RzAnalysisDiff` and its usages
- Remove `librz/analysis/diff.c` entirely to and adds `librz/analysis/similarity.c`
- Remove a lot of unused structures and simplified the code by a lot
- Fix typo in levenshtein
- Remove `librz/core/gdiff.c` and `gdiff` functions since they were unused or only used in rz-diff
- Remove `difftype` (or "color") from `RzANode` which lead to dead code
- Decrease serialized data in projects.
- Add `RzAnalysisVarKind` and `RzAnalysisVarType` and replaces all the hardcoded values
- Remove command `agd`
- Remove all `rz_core_gdiff` usages from `rz_core.h`
- Refactor `rz_analysis_var_list` and `rz_analysis_var_count` due unused argument (`RzAnalysis` was not used)
- Add new method `rz_analysis_var_count_total` to simplify some usages
- Remove `rz_core_graph_diff`
- Add `typedef RzAnalysisFcnType` on `enum``used for function types
- Remove unused `RZ_ANALYSIS_FCN_VARKIND_LOCAL`
- Remove from `RzAnalysisFunction` the following variables:
  * `fingerprint`
  * `fingerprint_size`
  * `diff`
  * `diff_ops`
  * `diff_thbb`
  * `diff_thfcn`
- Remove from `RzAnalysisBlock` the following variables:
  * `fingerprint`
  * `diff`
- Remove `RZ_ANALYSIS_THRESHOLDBB` and `RZ_ANALYSIS_THRESHOLDFCN`
- Remove the following callbacks from `RzAnalysisPlugin`
  * `RzAnalysisDiffBBCallback`
  * `RzAnalysisDiffFcnCallback`
  * `RzAnalysisDiffEvalCallback`
- Fix fancy table columns/rows when a color string is in a cell
- Bumped project version to 9
2022-10-04 20:02:35 +02:00

215 lines
4.3 KiB
Text

NAME=tables sum
FILE=bins/elf/analysis/elf-virtualtable
CMDS=<<EOF
flt:size/sum
EOF
EXPECT=<<EOF
size
------
12.9K
EOF
RUN
NAME=tables sort
FILE=bins/elf/analysis/elf-virtualtable
CMDS=<<EOF
flt:size/cols:size/sort:size/uniq
EOF
EXPECT=<<EOF
size
-----
0
1
2
3
4
6
8
9
13
16
21
23
24
26
28
32
36
42
43
52
56
62
64
66
68
80
88
96
101
104
124
158
176
203
240
256
272
432
448
464
497
512
540
978
1160
4132
EOF
RUN
NAME=tables csv
FILE=bins/elf/analysis/elf-virtualtable
CMDS=<<EOF
flt:size/ne/0:addr/ne/0x00000000:/head/10:csv~:..20
flt:space/eq/relocs:addr/cols/name:/head/3:json~{}
flt:/head/10:/tail/4:space/cols/name
flt:/page/2/10:sort/cols/space/size/name:name/sort/inc:fancy
EOF
EXPECT=<<EOF
addr,size,space,name
0x00400000,4132,segments,segment.LOAD0
0x00400000,64,segments,segment.ehdr
0x00400040,448,segments,segment.PHDR
0x00400200,28,sections,section..interp
0x00400200,28,segments,segment.INTERP
0x0040021c,32,sections,section..note.ABI_tag
0x0040021c,68,segments,segment.NOTE
0x0040023c,36,sections,section..note.gnu.build_id
0x00400260,56,sections,section..gnu.hash
0x00400298,432,sections,section..dynsym
[
{
"addr": 6296136,
"name": "reloc.__gmon_start"
},
{
"addr": 6296168,
"name": "reloc.std::ostream::operator___int"
},
{
"addr": 6296176,
"name": "reloc.operator_delete_void"
}
]
space name
--------------------------------------------------------------------------------------
classes class.std::basic_ostream_char__std::char_traits_char_____std::endl_char__std
classes class.B
classes class.A
classes class.C
segments segment.LOAD0
.------------------------------------------------------.
| space | size | name |
)------------------------------------------------------(
| sections | 28 | section..interp |
| sections | 32 | section..note.ABI_tag |
| sections | 36 | section..note.gnu.build_id |
| segments | 28 | segment.INTERP |
| segments | 4132 | segment.LOAD0 |
| segments | 68 | segment.NOTE |
| segments | 448 | segment.PHDR |
| segments | 64 | segment.ehdr |
| symbols.sections | 0 | sym..interp |
| symbols.sections | 0 | sym..note.ABI_tag |
| symbols.sections | 0 | sym..note.gnu.build_id |
`------------------------------------------------------'
EOF
RUN
NAME=afl table
FILE=bins/elf/hello_world
CMDS=<<EOF
s main
af
aflt:simple
EOF
EXPECT=<<EOF
addr name size xrefsTo xrefsFrom calls nbbs edges cc cost noreturn
-----------------------------------------------------------------------------------
0x000007aa main 157 0 9 6 3 3 2 61 false
0x00000660 sym.imp.strlen 6 2 1 0 1 0 1 3 false
0x00000670 sym.imp.malloc 6 1 1 0 1 0 1 3 false
0x00000640 sym.imp.strcpy 6 1 1 0 1 0 1 3 false
0x00000680 sym.imp.strcat 6 1 1 0 1 0 1 3 false
0x00000650 sym.imp.puts 6 1 1 0 1 0 1 3 false
0x00000630 sym.imp.free 6 1 1 0 1 0 1 3 false
EOF
RUN
NAME=tables sum
FILE=bins/elf/hello_world
CMDS=<<EOF
s main
af
afbt
afbt:fancy
afbt:size/sort/inc:simple
EOF
EXPECT=<<EOF
addr size jump fail
-----------------------
0x7aa 92 0x844 0x806
0x806 62 0x844 -1
0x844 3 -1 -1
.------------------------------.
| addr | size | jump | fail |
)------------------------------(
| 0x7aa | 92 | 0x844 | 0x806 |
| 0x806 | 62 | 0x844 | -1 |
| 0x844 | 3 | -1 | -1 |
`------------------------------'
addr size jump fail
-----------------------
0x844 3 -1 -1
0x806 62 0x844 -1
0x7aa 92 0x844 0x806
EOF
RUN
NAME=tables gt/ge/lt/le
FILE=bins/elf/ls
CMDS=<<EOF
omlt:size/ge/0x3480:size
?e
omlt:size/gt/0x3480:size/cols
?e
omlt:size/le/0x3480:size:quiet
?e
omlt:size/lt/0x3480:size/cols:quiet
EOF
EXPECT=<<EOF
.---------.
| size |
)---------(
| 0x3480 |
| 0x12791 |
| 0x87c0 |
`---------'
.---------.
| size |
)---------(
| 0x12791 |
| 0x87c0 |
`---------'
0x9b8
0x3480
0x12f0
0x1218
0x9b8
0x12f0
0x1218
EOF
RUN