rizin/test/db/analysis
Florian Märkl d9950f7479
Replace bp/sp-vars by generic stack-based ones (#3167)
Variables on the stack are not identified by bp/sp+<offset> anymore, but
by their address from the bottom of the stack frame (RzStackAddr),
independent of how they are accessed.
So now there are only two kinds of variables: stack and register.

This required some major refactoring and other changes:
* RzAnalysisVar.isarg was removed. Whether a variable is an argument is
  now specified implicitly by its storage location.
* Varsub of struct fields had to be rewritten so fields can be queried
  by arbitrary stack addresses using the recently introduced sp
  tracking, as the old approach to fill a list with all fields would not
  work anymore.
* analysis.vars.stackname was removed, new behavior is more similar to
  this being true before.
* Variables will not be created at stack+0 now, because the return
  address is there. Before, vars were only created sometimes in such
  cases.
* Variables created from bp offsets in x86 are not deleted anymore if
  the function's bp_frame is false (see removed
  rz_analysis_function_delete_vars_by_kind(fcn,
  RZ_ANALYSIS_VAR_KIND_BPV); calls). This may lead to some
  false-positive detected variables. Whether this really is a practical
  issue is yet to be seen. At least there are no meaningful tests that
  are broken by this.
* Applying variables from dwarf needed some fixes for determining the
  correct stack locations of variables in order to write meaningful
  tests. The handling is still not entirely correct for all
  possibilities of dwarf info, but at least the changed/added test cases
  are right and serve as a reference for future changes.
* Projects version 11 is introduced.
* afvb commands have been removed, afvs now handles all stack vars.
2023-01-02 11:36:21 +08:00
..
6502 Updated all tests 2022-11-01 10:58:16 +08:00
8051 8051: Make Jump Targets in Higher Banks stay inside their Bank (#1066) 2021-04-23 13:14:51 +02:00
amd29k Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
arc Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
arm Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
arm64 Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
avr Updated all tests 2022-11-01 10:58:16 +08:00
chip8
classes Remove sdb json (#1118) 2022-07-12 22:48:33 +08:00
cris Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
dalvik Dalvik disassembly should not throw error for single opcode (#3255) 2022-12-20 22:36:56 +05:30
gb Updated all tests 2022-11-01 10:58:16 +08:00
golang Resolve golang string structures in data section (#2878) 2022-08-11 18:00:38 +08:00
h8300 Updated all tests 2022-11-01 10:58:16 +08:00
hexagon Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
i4004 Updated all tests 2022-11-01 10:58:16 +08:00
java Update rz-libdemangle (#2984) 2022-08-27 02:35:07 +02:00
luac
m68k Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
m680x Updated all tests 2022-11-01 10:58:16 +08:00
mach0 Fix all db/analysis tests 2021-10-27 09:31:50 +02:00
mcore Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
mips Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
msp430 Remove agd and add rz_analysis_similarity/match + refactoring 2022-10-04 20:02:35 +02:00
noreturn Fix all db/analysis tests 2021-10-27 09:31:50 +02:00
null Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
path
pic Updated all tests 2022-11-01 10:58:16 +08:00
ppc PPC uplifting to RzIL (#2823) 2022-08-11 08:41:15 +08:00
riscv Change -, --, = argument and = command meaning (#930) 2021-04-21 16:20:24 +08:00
sh [RzIL] IL lifting of SuperH ISA (#2518) 2022-08-02 02:37:03 +05:30
snes
sparc Updated all tests 2022-11-01 10:58:16 +08:00
spc700 Updated all tests 2022-11-01 10:58:16 +08:00
sysz Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
thumb ARM pseudo subvar: don't substitude [pc, reg] 2022-07-21 22:24:06 +02:00
tms320 Updated all tests 2022-11-01 10:58:16 +08:00
tms320.c64x_32 TMS320 and TMS320c64x register profile (#2805) 2022-07-19 18:08:43 +08:00
tricore Updated all tests 2022-11-01 10:58:16 +08:00
v810 Remove RzAnalysisPlugin.set_reg_profile (#2091) 2021-12-11 10:18:31 +01:00
v850 Remove analysis.endsize config 2022-05-18 10:25:01 +02:00
vars Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
x86_16 x86 RzIL uplifting (#2747) 2022-11-28 09:33:19 +08:00
x86_32 Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
x86_64 Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
xtensa Replace bp/sp-vars by generic stack-based ones (#3167) 2023-01-02 11:36:21 +08:00
z80 Updated all tests 2022-11-01 10:58:16 +08:00