Alessandro Di Federico
077a6e2629
Importers: ignore unmapped code
...
This commit ensures that parts of the model that must point to code
(specifically `Binary::EntryPoint`, `Binary::ExtraCodeAddresses` and
`Function::Entry`) actually point to a segment mapped as +x.
2024-11-28 14:04:36 +01:00
Alessandro Di Federico
37feb2dd77
Binary::verify: verify executable addresses
...
Fail if code addresses are not within an executable segment.
2024-11-28 14:04:36 +01:00
Alessandro Di Federico
278c6f625c
Importers: first of all, Segments
...
This commit makes sure that before setting EntryPoint, adding
ExtraCodeAddresses or Function entry points, we completed the processing
of Segments.
2024-11-28 14:04:36 +01:00
Alessandro Di Federico
d1252046ce
Importers: do not set EntryPoint, if absent
2024-11-28 13:58:29 +01:00
Alessandro Di Federico
1e2a55e372
Minor changes
2024-11-28 13:58:28 +01:00
Alessandro Di Federico
efcea8ae48
importBinary: fix error handling
2024-11-12 18:05:48 +01:00
Ivan Krysak
672ee5df50
Replace std::string_view with llvm::StringRef
2024-11-06 15:43:13 +02:00
Ivan Krysak
8e3c9c0788
Model: remove obsolete name methods
2024-11-06 15:43:13 +02:00
Ivan Krysak
2a5d50630b
Model: adopt name builder in verification
2024-11-06 15:43:13 +02:00
Ivan Krysak
2be6f4aebb
TypeSystemPrinter: adopt name builder
2024-11-06 15:43:13 +02:00
Ivan Krysak
ad868f57ad
Model: introduce name builder
2024-11-06 15:43:13 +02:00
Ivan Krysak
0a3628e6fe
Model: introduce naming configuration
2024-11-06 15:42:44 +02:00
Ivan Krysak
1eb80ecd2d
Introduce an error creation helper
2024-11-06 15:20:37 +02:00
Alessandro Di Federico
16e01f43d6
Import revng-c's FunctionTags.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
a0c670652c
Improve usages of Expected<T>
2024-10-10 14:50:26 +02:00
Ivan Krysak
4bdc7f83b5
ABI: drop incomplete pascal support
2024-10-08 13:53:53 +02:00
Ivan Krysak
8c313a73af
Model: make sure segments use generic addresses
2024-10-08 13:53:52 +02:00
Ivan Krysak
99e016f120
ABI: reorganize default ABI helpers
2024-10-08 13:53:52 +02:00
Giacomo Vercesi
f8ffe38687
Unify cache directory logic
...
Make the cache directory logic uniform in Python and C++, move the
respective implementations under support since it's project-wide logic
and not exclusive to debug-info.
2024-10-01 13:38:13 +02:00
Alessandro Di Federico
bc064244d6
s/deserialize/fromString/g
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
c1cbb4e9a0
Initialize pointers to nullptr
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
2cdedc71f4
s/serialize/toString/
...
We keep serialize for method dealing with streams.
If it returns a `std::string`, let's use `toString`.
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
c8d4381297
s/Context &Ctx/Context &Context/g
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
bd08864e49
DwarfReader::readValue: handle DW_EH_PE_omit
2024-09-26 17:44:51 +02:00
Alessandro Di Federico
5c9b6ed9b3
Rename DILogger into Log
2024-08-16 13:27:00 +02:00
Alessandro Di Federico
09e483f96b
BinaryImporter: create a Function for EntryPoint
2024-08-16 13:01:59 +02:00
Alessandro Di Federico
cba1d6fa51
PDBImporter: fix .pdb path lookup
2024-08-16 13:01:57 +02:00
Alessandro Di Federico
d3b945c6c2
PECOFFImporter: use Generic Segment::StartAddress
2024-08-05 18:00:27 +02:00
Alessandro Di Federico
7b00473859
PDBImporter: rework .pdb search
2024-08-05 17:41:34 +02:00
Alessandro Di Federico
df8f4db512
MachOImporter: set DefaultABI
2024-07-09 08:58:51 +02:00
Alessandro Di Federico
1981f5a433
Minor changes
2024-07-09 08:58:51 +02:00
Ivan Krysak
e52dd97937
TypeSystemPrinter: improve formatting
...
- change the font of the emitted graph to `Courier`, which is the only
monospace font graphviz guarantees to support
- tweak color of the union definitions to be slightly lighter (so that
it doesn't clash as much with the other colors used)
- change the color of all the "other" nodes (like typedef) from white
to grey, so that they are visible on light backgrounds.
- leave a todo about `buildFieldName` being obsolete.
2024-06-27 11:05:52 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
2ae19ef30a
DynamicFunction: ban / in the name
2024-06-27 11:05:51 +02:00
Ivan Krysak
3c974fea7c
Model: make purge-invalid-types softer
2024-06-27 11:05:51 +02:00
Ivan Krysak
776a5cdc52
Model: move path data away from the header
2024-06-27 11:05:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
925690a1e1
VerifyHelper: reduce pointer usage
2024-06-27 11:05:50 +02:00
Ivan Krysak
b6625e8913
Model: simplify fixModel pass
...
Instead of getting reimplemented/updated, it now just reuses normal
type verification routines.
2024-06-27 11:05:50 +02:00
Ivan Krysak
39264e73fa
Model: introduce new Type system
2024-06-27 11:05:50 +02:00
Ivan Krysak
b33eb7cf70
Model: reduce pointer usage in verify
2024-06-27 11:05:50 +02:00
Ivan Krysak
e8288d1e70
Model: reorganize verifier order
...
This helps keeping track of them and making sure none of them is lost.
The order is bottom-to-top, so ends with `model::Binary::verify` and
contains verification of all of its dependencies in the order they
appear in their user's `verify`s, kind of like a flattened tree.
2024-06-27 11:05:49 +02:00
Ivan Krysak
277cba213c
Model: separate verification
2024-06-27 11:05:49 +02:00
Ivan Krysak
9e6bf29f74
TTG: pull dump helper into the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
927e8006b9
Model: rename TypePath to DefinitionReference
2024-06-27 11:05:49 +02:00
Ivan Krysak
35444268b3
TTG: strip Kind from the child constructor
2024-06-27 11:05:49 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
26c68b78ea
Model: drop makeTypeWithID
2024-06-27 11:05:48 +02:00
Ivan Krysak
84c8822c37
Model: drop TypedRegister
2024-06-27 11:05:48 +02:00
Ivan Krysak
b2959e36df
Minor improvements
2024-06-27 11:05:48 +02:00