Commit Graph

3076 Commits

Author SHA1 Message Date
Ryan Fleury 83d4afabd5 p2r2: types building 2025-08-18 16:28:22 -07:00
Ryan Fleury 0fa45fe71b p2r2: reslice per-lane work; bucket subsets of units by record count, rather than assigning units to lanes 2025-08-18 15:24:25 -07:00
Ryan Fleury 55f21018df unit conversion, line info conversion 2025-08-18 14:19:48 -07:00
Ryan Fleury 34cb8ded2c better uniform lane range distribution when count / lanes is not cleanly divisible; plug in source file path gathering 2025-08-18 12:01:55 -07:00
Ryan Fleury d52b6d7bca go wide on msf stream extraction 2025-08-18 11:36:33 -07:00
Ryan Fleury d0ece7bc57 hook up p2r2 to radbin 2025-08-18 11:26:05 -07:00
Ryan Fleury c33dd2869a define synchronization primitive interface in base layer, implement using os layer; convert all usage -> base layer; use base sync primitives in lane tctx info 2025-08-18 10:46:43 -07:00
Ryan Fleury a48651471d share-read in header analysis in radbin 2025-08-15 16:54:06 -07:00
Ryan Fleury e566b2ed30 checkpoint on wavefront-style pdb -> rdi converter 2025-08-15 16:50:28 -07:00
Ryan Fleury f1a1863d5c set up base-layer tctx info for thread wavefront metadata 2025-08-15 12:16:58 -07:00
Ryan Fleury f754b4c2db fix pointer/array comparison paths not being enabled for not-equal; fix value arithmetic paths applying in type comparisons 2025-08-15 11:31:50 -07:00
Ryan Fleury 83650a5fe0 support unsigned -> unsigned int; support as-style casts in expressions; pack int alias in pdb-produced rdis 2025-08-15 10:56:42 -07:00
Ryan Fleury 36c626e375 Merge branch 'master' of https://github.com/EpicGames/raddebugger into dev 2025-08-14 11:31:43 -07:00
Ryan Fleury 7be1faaa9b fix callstack cache lookup early out case 2025-08-13 14:13:10 -07:00
Ryan Fleury 5144ced282 turn off call stack tree macro for now 2025-08-13 13:46:02 -07:00
Ryan Fleury 6a8277536f fix one-sided bounds check in text containing-scope binary search 2025-08-13 13:21:34 -07:00
Nikita Smith 1d6eae2b18 minor fixes for gathering library members 2025-08-12 19:03:51 -07:00
Nikita Smith 086d774b8b fix ELF compressed header and skip duplicate sections 2025-08-12 14:10:13 -07:00
Ryan Fleury 788df5f556 os: barrier 2025-08-12 10:12:05 -07:00
Nikita Smith b50f309422 modified member queue logic to prioritize libs where pull-in reference
symbol is declared
2025-08-11 23:28:03 -07:00
Ryan Fleury a8f6142e63 eval/ir: do not strip enum types off when doing address operations 2025-08-11 16:18:39 -07:00
Ryan Fleury 36dcd65a83 first pass at call stack tree evaluation 2025-08-11 16:08:04 -07:00
Ryan Fleury 056604fb94 sketch out tline -> vline text wrapping cache types; first pass of async call stack tree builder 2025-08-11 13:46:06 -07:00
Nikita Smith 829a35430c add flag to exclude objs from debug info input 2025-08-11 02:49:26 -07:00
Nikita Smith 702fd74b23 minor cleanup in obj initer 2025-08-10 21:41:39 -07:00
Nikita Smith 2b02f5cec6 lifetime fixes
- fully serialize the lib because we cannot guarantee that its members
  will have the same lifetime as the serialized lib
- put import stub symbols on the symbol table arena
2025-08-10 21:35:33 -07:00
Nikita Smith 7466da1479 mark referenced symbols as live for unresolved-symbol detection 2025-08-08 15:54:21 -07:00
Nikita Smith 9893a8135d fix crash when linking undefined weak symbol 2025-08-08 13:35:47 -07:00
Nikita Smith 137eb6403a fix crash when relocation points to an undefined section symbol 2025-08-07 22:40:20 -07:00
Nikita Smith 4f6f9d61ed inline function for replacing weak symbols with default symbol 2025-08-07 17:41:45 -07:00
Nikita Smith 9a1f96bda2 progress on /opt:ref
Link the debugger and strip unreferenced sections
TODO: Mark referenced undefined symbols for unresolved symbol reporting
2025-08-07 17:36:11 -07:00
Ryan Fleury e1d6b9f319 tweaks 2025-08-06 17:21:44 -07:00
Ryan Fleury af5dcffdac tie scope rendering to settings 2025-08-06 14:33:17 -07:00
Ryan Fleury a227aff8f6 finish containing-scope visualization 2025-08-06 14:24:12 -07:00
Ryan Fleury cd8c3a2172 enable read/write bits on just read data breakpoint on x64 - there is no way to do a read-only (without write) data breakpoint 2025-08-06 11:50:01 -07:00
Ryan Fleury 4c10e84e5f fix txt cache scope lookup binary search 2025-08-05 21:17:50 -07:00
Ryan Fleury 01f60834e9 plug in text scope tree to code slice visualization 2025-08-05 16:36:59 -07:00
Ryan Fleury 230f452edb text cache scope tree lookup paths 2025-08-05 16:11:49 -07:00
Ryan Fleury 5a5fd53bfa scope tree / sorted scope endpoints parsing in text cache parsing 2025-08-05 14:28:49 -07:00
Ryan Fleury c4374810cb fix wrong void type in pdb -> rdi 2025-08-05 13:41:10 -07:00
Ryan Fleury 9cff2bc7dd symbolof operation in eval 2025-08-05 10:21:42 -07:00
Ryan Fleury 1856c52e58 xxhash for ctrl layer 2025-08-05 09:27:38 -07:00
Nikita Smith cff6426741 null check for obj 2025-08-05 08:39:12 -07:00
Nikita Smith d3dedd8bef simplifying symbol table scopes
Linker cannot register extern import symbols initially because
the import object files are not available until all other object files are
resolved. To work around this, we create a stub weak symbol and assign
it to each import symbol. This allows linker to proceed. Once the import
object files are generated, linker replaces the stub symbol with
the actual ones from the import objects.
2025-08-05 08:39:12 -07:00
Nikita Smith dd715dacf7 assign COMDAT symlinks as soon as the symbol table is processed 2025-08-05 08:39:11 -07:00
Nikita Smith 1fe85acff8 refactor include symbols to go through same code path as alternate name symbols 2025-08-05 08:39:11 -07:00
Nikita Smith c1958809eb make use of undocumented anti-dependency search property on weak symbols
to implement alternate name using weak symbols
2025-08-05 08:39:11 -07:00
Nikita Smith 8d246d0c6a pass down to config obj; preparing to refactor alternate name out of the symbol table 2025-08-05 08:39:11 -07:00
Ryan Fleury 31973ac2ac eliminate extra type stuff in rdim, organize / reslice dwarf conversion code, start reading through dwarf conversion 2025-08-04 14:19:17 -07:00
Ryan Fleury b31b4612e9 pre-emptive thread register cache updating on ctrl thread - cache reading/updating on ui thread should always be allowed to gracefully fail, since it is literally impossible on linux, but we can always rely on the ctrl thread to pipe the right thing through eventually. 2025-08-04 13:13:18 -07:00