* types: allow an offset to be set for the struct itself
Not all pointers to structs start at the beginning, thanks Microsoft
with your implementation of list entries. Therefore this commit allows
you to tweak the 'entry point' to the struct when using the ta command.
NOTE: Annoyingly this file is formatted badly so there are lots of
additions due to linting!
* ctype: handle nested structs in get_struct_memb
r_type_get_struct_memb will now parse inline structs rather than
incorrectly bailing out
* types: apply changes from review #12322
Commit cc9d361dd317d3679d6af7ff0809744c8d82c945 only partially solved
the issue. The same should have been done for \n, \r, ' '. This patch
refactors the code to be sure both cases do the same thing.
* anal: arm: emulate correctly BX PC in arm32/thumb ##anal
* anal: arm: handle BX PC in analysis to propagate bits
PC is well known without ESIL, that way it is possible to propagate the
bits to correctly create the hints
* anal: arm: modify r_anal_build_range_on_hints ##anal
This function now accepts a second parameter that specify when to
dispose hints when overlapping.
The rationale is that if this is performed in a continuos basis, old
ranges are lost when in a latter stage in the analysis is inserted a new
hint.
For example, if we have something like
0x80000 -> 16 bits
0x82000 -> 16 bits
With the previous logic this would have been become
0x8000 -> 16 bits
However, during analysis a new hint like this might happen
0x8100 -> 32 bits
Therefore, 0x8200 which was 16 bits is lost. With the second parameter
update, we postpone this until the user print the disassembly - we wait
until the end to clean up hints to speed up the looks up. However,
during analysis we mantain all the hints.
* anal: arm: handle better anal hints to increase performance ##anal
new API r_anal_hint_get_bits_at
This saves time for example on r_anal_build_range_on_hints without the
need to use heap for RAnalHints speeding up the analysis
Added cb when calling r_anal_hint_set_bits and rbtree for anal ranges
which improves lookups
fix __anal_range_tree_find_bits_at
fix conflicts and coding style
* arm: set anal hint when BL instruction