object-introspection/oi
Jake Hillion 11588ef837 add failover to naive location assumptions
The current hacked together location API we added to drgn works extremely
poorly with modern C++ compilers. It largely works with the clang-12 compiler
on CircleCI, but works very poorly with clang 15/16/17/18 in Nix or when
updating the CircleCI compiler to clang-15.

This change adds a backup mechanism for locating arguments when drgn has
failed. The mechanism is extremely naive and makes several assumptions which
are often not correct. Currently, however, it drastically reduces the number of
tests that must be skipped in the Nix CI.

Test plan:
- CI
2024-09-02 15:05:43 +01:00
..
arch add failover to naive location assumptions 2024-09-02 15:05:43 +01:00
exporters tbv2: calculate total memory footprint 2024-01-04 09:21:35 +00:00
support tomlplusplus: compile header once 2023-05-30 16:43:10 +02:00
type_graph nix: add building oid to the flake 2024-08-16 12:29:31 +01:00
types/test move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
CMakeLists.txt add minimal support for aarch64 (#507) 2024-08-23 03:43:26 -07:00
CodeGen.cpp TypeGraphv2: correctly handle bitfields in code generation (#495) 2024-04-23 14:56:09 +01:00
CodeGen.h oilgen: migrate to source parsing (#421) 2023-12-19 13:26:25 -08:00
Config.cpp clang-format: disable bin packing 2023-11-13 18:19:53 +00:00
Config.h support 0 to many config files (#371) 2023-10-02 14:06:39 -06:00
ContainerInfo.cpp tbv2: update std::variant 2024-02-23 16:16:22 +00:00
ContainerInfo.h tbv2: update std::variant 2024-02-23 16:16:22 +00:00
ContainerTypeEnum.h Implement Container V2 for std::unordered_multiset 2023-08-30 18:45:00 +02:00
Descs.cpp add failover to naive location assumptions 2024-09-02 15:05:43 +01:00
Descs.h add failover to naive location assumptions 2024-09-02 15:05:43 +01:00
DrgnUtils.cpp nix: update flake lock 2024-08-13 16:11:22 +01:00
DrgnUtils.h nix: update flake lock 2024-08-13 16:11:22 +01:00
EnumBitset.h containers: add required features (#374) 2023-10-09 17:50:39 -04:00
Features.cpp collapse TreeBuilderV2 features 2023-11-13 19:43:03 +00:00
Features.h collapse TreeBuilderV2 features 2023-11-13 19:43:03 +00:00
FuncGen.cpp tbv2: use std::decay_t with smart pointers 2024-01-31 17:27:04 +00:00
FuncGen.h tbv2: fix pointer codegen 2024-01-18 16:22:18 +00:00
Headers.h Compile Time OIL for OIL v2 2023-08-30 04:28:02 -07:00
IntrospectionResult.cpp nix: update flake lock 2024-08-13 16:11:22 +01:00
Metrics.cpp clang-format: disable bin packing 2023-11-13 18:19:53 +00:00
Metrics.h move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
OICache.cpp add portability.h (#386) 2023-10-24 03:03:16 -07:00
OICache.h move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
OICodeGen.cpp container_info: switch to boost::regex (#465) 2024-01-23 10:58:58 -08:00
OICodeGen.h remove oil v1 leftovers 2023-10-30 18:18:13 +00:00
OICompiler.cpp add minimal support for aarch64 (#507) 2024-08-23 03:43:26 -07:00
OICompiler.h add range-v3 library 2023-11-13 18:42:04 +00:00
OID.cpp OID: Make CodeGen v2 (TypeGraph) the default 2023-12-14 17:42:03 +00:00
OIDebugger.cpp CodeGen v2: Enable independent running without CodeGen v1 2023-12-15 14:57:24 +00:00
OIDebugger.h jitlog: use a memfd and glog 2023-11-21 12:00:13 +00:00
OIGenerator.cpp Keep template parameters for pass-through types (#486) 2024-02-15 12:04:41 -08:00
OIGenerator.h oilgen: migrate to source parsing (#421) 2023-12-19 13:26:25 -08:00
OILexer.h nix: update flake lock 2024-08-13 16:11:22 +01:00
OILexer.l move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
OILibrary.cpp oil v2 2023-08-23 15:59:53 +01:00
OILibraryImpl.cpp collapse TreeBuilderV2 features 2023-11-13 19:43:03 +00:00
OILibraryImpl.h oil v2 2023-08-23 15:59:53 +01:00
OIOpts.h move src directory to oi (#134) 2023-04-26 16:20:53 +01:00
OIParser.h clang-format: disable bin packing 2023-11-13 18:19:53 +00:00
OIParser.yy move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
OITraceCode.cpp fix string type sso computation (#469) 2024-01-31 11:19:24 +00:00
PaddingHunter.cpp clang-format: disable bin packing 2023-11-13 18:19:53 +00:00
PaddingHunter.h move src directory to oi (#134) 2023-04-26 16:20:53 +01:00
Portability.h add portability.h (#386) 2023-10-24 03:03:16 -07:00
Serialize.cpp nix: update flake lock 2024-08-13 16:11:22 +01:00
Serialize.h add failover to naive location assumptions 2024-09-02 15:05:43 +01:00
SymbolService.cpp clang-format: disable bin packing 2023-11-13 18:19:53 +00:00
SymbolService.h oil v2 2023-08-23 15:59:53 +01:00
Syscall.h jitlog: use a memfd and glog 2023-11-21 12:00:13 +00:00
TimeUtils.h move src directory to oi (#134) 2023-04-26 16:20:53 +01:00
TrapInfo.h move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
TreeBuilder.cpp Fix TreeBuilder processing of zero-length array 2024-01-10 19:13:41 +01:00
TreeBuilder.h move all internal logic to oi::detail namespace 2023-07-26 18:01:38 +01:00
TypeHierarchy.h clean up common.h 2023-06-09 13:15:17 +02:00
X86InstDefs.h move src directory to oi (#134) 2023-04-26 16:20:53 +01:00