Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury fa05bbf2a5 udt member/enum-val layout & nested baking; use rio to pre-fault all commits 2025-09-05 15:19:30 -07:00
Ryan Fleury a84142ed77 re-nest enum vals & members into udts; we want to keep the building API flexible with order of member building, and we can assume ~statistically-uniform distribution across all udts, so it makes more sense to just parallelize on udts, and pay the small cost of an upfront per-lane layout. 2025-09-05 15:19:30 -07:00
Ryan Fleury 8b83e5ef48 more non-determinism & bug fixes in name map & idx run map building 2025-09-05 15:19:29 -07:00
Ryan Fleury 4c3bb98c64 more determinism fixes 2025-09-05 15:19:29 -07:00
Ryan Fleury 096b631e8a remove debugging code 2025-09-05 15:19:29 -07:00
Ryan Fleury 27f2acd45d further progress/fixes on pdb -> rdi determinism 2025-09-05 15:19:29 -07:00
Ryan Fleury 27d4793900 fix line table building non-determinism 2025-09-05 15:19:29 -07:00
Ryan Fleury f093ba9d35 fix src file path gathering determinism - was caused by interleaving each lane's non-inline and inline file paths - with different thread counts, these subdivisions will be different, so the order will change 2025-09-05 15:19:29 -07:00
Ryan Fleury 6234fb0c49 fix incorrect scope voff serialization offsets 2025-09-05 15:19:29 -07:00
Ryan Fleury 955f033043 fix incorrect idx run baking; slots need to be laid out based on *idx counts*, rather than *value counts*! 2025-09-05 15:19:29 -07:00
Ryan Fleury e276ce4fb3 stub out src file baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 57125fee1b eliminate helpers from string map baking; no point in extra entry points for partial bakes 2025-09-05 15:19:29 -07:00
Ryan Fleury 2f9006bb8a bugfix name map baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 46ac437e86 name map baking / serialization 2025-09-05 15:19:29 -07:00
Ryan Fleury 92f24a043d idx runs baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 55b05301a4 expand scope vmap sorting -> all vmaps; do final vmap bakes; do first pass of scope (1 scope -> many locals, many voffs) layout / baking 2025-09-05 15:19:29 -07:00
Ryan Fleury cc0d707eb2 eliminate 'lane groups', since we can go wide on the sorts now 2025-09-05 15:19:29 -07:00
Ryan Fleury 1d7cd4f4d2 cleanup / radix sort experimentation 2025-09-05 15:19:29 -07:00
Ryan Fleury a44fbb0909 parallel radix sort for scope vmap baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 8fe4b3524f with sufficient threads, split baking threads into two groups: small # of threads to do expensive 'background' baking tasks, use the rest to do wide predictable baking stuff 2025-09-05 15:19:29 -07:00
Ryan Fleury f065ca33a2 location block baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 3b1aae44d0 location info baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 71cbdba76e remove old section requirement part of rdi, since all sections are now fixed; unit/scope/global vmap baking; collapse chunk list impls 2025-09-05 15:19:29 -07:00
Ryan Fleury e4ac3febd0 finish new udt baking; pull members & enum vals out of sub-udt lists, makes it much harder to layout & parallelize - instead pull them aside into their own chunk lists, require that UDTs just point to their first member; that way we can go wide when baking UDT members/enum-vals 2025-09-05 15:19:29 -07:00
Ryan Fleury b8414c4bfd type, first part of udt baking, string baking 2025-09-05 15:19:29 -07:00
Ryan Fleury ad4e57ec5a idx run baking 2025-09-05 15:19:29 -07:00
Ryan Fleury b22f6d3544 fully wide name map baking, joining, & sorting 2025-09-05 15:19:29 -07:00
Ryan Fleury 95e88e92e7 top-level info string baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 618233eba1 checkpoint on new baker; globals, threads, inline sites 2025-09-05 15:19:29 -07:00
Ryan Fleury 595270bdab path tree baking 2025-09-05 15:19:29 -07:00
Ryan Fleury b169090dc6 checkpoint on new rdi baking; line table baking, string map building, plug in radsort over bad radix sort; arena tweak to aovoid unnecessary zeroes 2025-09-05 15:19:29 -07:00
Ryan Fleury 66ec3e834b rdi baking: wide line table gathering/joining & sorting 2025-09-05 15:19:29 -07:00
Ryan Fleury 69d0da9586 checkpoint on moving all of radbin to wavefront-style, first step to going wide on rdi baking as well 2025-09-05 15:19:28 -07:00
Ryan Fleury c35c14dadb prefer last match to first in debug info, to gracefully avoid stale debug info in pdbs 2025-08-30 12:04:39 -07:00
Ryan Fleury be5634c448 p2r2 - final conversion output bundling 2025-08-19 17:02:05 -07:00
Ryan Fleury cdec8d5980 ctrl/demon: fastfail exception codes / notes; p2r2: finish symbol conversion etc. in new wavefront-style version 2025-08-19 16:47:12 -07:00
Ryan Fleury cff69f287a p2r2 more progress; src file line sequence equipping, sketch out symbol conversion - we unfortunately cannot currently easily subdivide units! we need to pull out the few 'record-range' concepts and make them flat first, e.g. proc base address for inline sites, frameproc info, etc. 2025-08-18 16:58:05 -07:00
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
Ryan Fleury 788df5f556 os: barrier 2025-08-12 10:12:05 -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
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
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
Ryan Fleury 9c2bdf492f ptrace register reading debugging 2025-08-04 12:36:04 -07:00
Ryan Fleury 209c5e96b8 bitmap view -> rich hover 2025-08-01 11:45:28 -07:00
Ryan Fleury 25963dc9b4 demon/linux: correct main module address range formation; further progress on event processing 2025-07-31 17:33:58 -07:00
Ryan Fleury a323aec6d0 demon/linux: x64 trap writing 2025-07-31 15:10:25 -07:00
Ryan Fleury 7c99e79981 demon/linux: first pass port at x64 register writing 2025-07-31 14:54:28 -07:00
Ryan Fleury 1a19bf9663 render/d3d11: adjust allowed frame 'latency' (frames-in-queue) based on number of active windows, to not unnecessarily block if we have two windows to build frames for; demon/linux: sketch out register writing path, ensure reg read/write paths have slots for other architectures 2025-07-31 14:09:42 -07:00
Ryan Fleury ad735dab5e pull raddbg byte attachment aside into standalone section - this guarantees byte placement, does not rely on ordering, and does not require symbols 2025-07-31 13:15:37 -07:00
Ryan Fleury 9ef87e9d56 fix to match 32 -> 64 change in demon/win32 2025-07-29 14:22:23 -07:00
Ryan Fleury 7403a8ea3b demon/linux: x64 register reading 2025-07-29 14:19:54 -07:00
Ryan Fleury 0e9f2ee03c demon/linux: halting, sigstop cases 2025-07-28 17:47:50 -07:00
Ryan Fleury 64c2d98ede demon/linux: sketch out signal interpretation, more ptrace study 2025-07-28 17:25:24 -07:00
Ryan Fleury 122c27eabe do not funnel non-dwarf sections in dwarf input prep pass 2025-07-28 16:22:23 -07:00
Ryan Fleury 48f5df2523 cleanup pass over elf parsing; base addr calculation? 2025-07-28 16:13:45 -07:00
Ryan Fleury 09f9cc25df os/linux: move-file-path impl 2025-07-28 14:54:48 -07:00
Ryan Fleury 2e8c0875c8 only use type-derived sizes in eval ranges when the evaluation is an offset, not a value 2025-07-28 14:34:46 -07:00
Ryan Fleury 5134d1ce4c adjust eval -> space range mapping to fix a few edge cases 2025-07-28 14:32:47 -07:00
Ryan Fleury c22ecf8e71 output clearing path 2025-07-28 12:05:37 -07:00
Ryan Fleury 97b4abd6de measure os file write helper success by bytes written - do not assume the write completes if the file handle is valid 2025-07-28 11:36:43 -07:00
Ryan Fleury 9b28ab68f2 adjust open user/project path to be more robust in cases of loading corrupted data on startup 2025-07-28 11:26:55 -07:00
Ryan Fleury e3a79dae86 apply slash insensitivity to fuzzy matches 2025-07-27 21:02:34 -07:00
Ryan Fleury 7dca3fd954 os/gfx/win32: fix bad alloc size in new utf16 clipboard path 2025-07-27 20:02:18 -07:00
Ryan Fleury 2e14f34cc8 derefence pointer/reference evaluations when generating block tree, to match expected behavior, & what the string iterator does 2025-07-25 16:11:17 -07:00
Ryan Fleury cb68abe844 packed bits test in mule 2025-07-25 15:31:22 -07:00
Ryan Fleury 163b79e4c0 decay bitfield types in casting path, allow casting to integer types 2025-07-25 15:29:34 -07:00
Ryan Fleury 393c291f63 reflect casting changes to call-cast style 2025-07-25 15:19:35 -07:00
Ryan Fleury 1c2855a314 unwrap decorative type operators on casts when building ops for casting, to allow for graceful enum casting; gracefully skip struct/enum symbol name prefixes 2025-07-25 15:17:39 -07:00
Ryan Fleury 1d67eb42a2 os win32 -> upgrade clipboard paths for unicode 2025-07-25 14:27:38 -07:00
Ryan Fleury 4d7088d321 do not pre-emptively exit the debug event loop on timeout unless we actually have debug strings 2025-07-25 14:21:31 -07:00
Ryan Fleury b5accc9105 apply floating flag to tooltip correctly 2025-07-25 14:00:23 -07:00
Ryan Fleury c43697fb18 fix type debug info table evaluations; fix preference for auto-hook-applied lhs evaluation when doing member/array accesses 2025-07-25 13:29:08 -07:00