Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury c7e80ee135 raddbgi_from_pdb: move all top-level baking phases to task system threads. still a lot of improvement to do, these are top-level tasks and there is a lot of work *within* these tasks that is happening serially unnecessarily, but this is a good first step to parallelizing the bake. 2024-02-21 16:27:29 -08:00
Ryan Fleury 6a49672904 raddbgi_from_pdb: idx run baking; raddbg: catch up to new converter interface 2024-02-21 15:23:35 -08:00
Ryan Fleury 2dd4526dd9 raddbgi_from_pdb: path tree & string baking 2024-02-21 15:12:08 -08:00
Ryan Fleury f2cf518231 raddbgi_from_pdb: name map baking, small fixes with new baking strategy 2024-02-21 14:55:50 -08:00
Ryan Fleury 41b1f1c7e3 raddbgi_from_pdb: organize new baking path, which does all independent section list builds separately; do first pass of baked string map building 2024-02-21 14:36:15 -08:00
Ryan Fleury f93b71d8c3 raddbgi_from_pdb: untangle all baking stages - move almost all baking stages to a strictly read-only path of strings, idx runs, and so on. make section layout, given some loose input baking params, completely deterministic & well-defined, such that section list building for each stage of baking can be completely independent 2024-02-21 13:43:56 -08:00
Ryan Fleury 25ef98a98c raddbgi_make: eliminate old bake src files, switch over completely to user-specified src files; enforce nil entries in all tables for all cases 2024-02-21 10:36:22 -08:00
Ryan Fleury 529262d471 begin untangling source file & path tree building in converter/maker/baker; this cannot happen as another implicitly-mutated-context thing that magically happens behing a top-level 'baking' function. instead, this needs to be constructed according to the rules of the user, and passed to baking stages as a batch 2024-02-20 16:32:09 -08:00
Ryan Fleury 7581a6866d raddbgi_from_pdb: overlap link name map building with type info building, since they are independent streams of work 2024-02-20 15:13:22 -08:00
Ryan Fleury 923714c3c9 raddbgi_make: split final blob flattening & encoding from 'baking' phase 2024-02-20 14:07:58 -08:00
Ryan Fleury b8a4aeac39 raddbgi_from_pdb: offload c13 line info parsing to task threads 2024-02-20 13:16:52 -08:00
Ryan Fleury e7ab92e07c raddbgi_from_pdb: move comp unit contributions parsing out to task threads; move per-comp-unit top-level symbol parsing to task threads 2024-02-20 13:09:23 -08:00
Ryan Fleury 53bc258c4a raddbgi_from_pdb: move itype dependency chain building to task threads 2024-02-20 12:58:04 -08:00
Ryan Fleury 7e36c25a31 fix more async fwd map building bugs; move symbol stream conversion to task system 2024-02-20 12:04:57 -08:00
Ryan Fleury 66ef1b3eeb raddbgi_from_pdb: move top-level compilation unit parsing to asynchronous tasks 2024-02-20 11:30:01 -08:00
Ryan Fleury 6b2e4abe81 unify async task kickoff/await mechanism in first pass of 'task system' layer; use in organizing various independent parsing passes of a pdb; also fix busted multithreaded fwd resolution pass 2024-02-20 11:16:54 -08:00
Ryan Fleury 10a0420264 raddbgi_from_pdb: parameterize symbol stream conversion pass with sub-range of symbols; this cannot be applied to unit conversion, since they have cross-sym-record concepts, but it *can* be used for global symbol streams, which are also the most expensive to convert. this majorly speeds up global symbol stream conversion 2024-02-19 16:41:22 -08:00
Ryan Fleury 0b73582b87 raddbgi_from_pdb: multithread initial independent parsing/preparation phases of converter 2024-02-19 15:52:26 -08:00
Ryan Fleury 8369637026 raddbgi_from_pdb: multithread itype forward resolution map building 2024-02-19 15:07:25 -08:00
Ryan Fleury 86ee3cb4b6 raddbgi_from_pdb: multithread per-unit symbol conversion 2024-02-19 14:42:13 -08:00
Ryan Fleury 5cd5503db1 raddbgi_make: adjust baking-phase bucket counts based on estimates from parameters 2024-02-19 12:13:42 -08:00
Ryan Fleury 29c21b43af fix busted vmap section size 2024-02-19 11:52:28 -08:00
Ryan Fleury f7f57a2c7a fix enumerate parsing 2024-02-19 11:18:34 -08:00
Ryan Fleury 694e9d27d6 raddbgi_from_pdb: adjust itype -> type node building strategy; do initial pass of finding dependent itypes from a given itype, since those *must* be built first in order to comply with raddbgi's rule of type nodes only ever referencing earlier type nodes; then do a single itype build pass where you build all itypes by iterating their dependency chains 2024-02-19 11:13:29 -08:00
Ryan Fleury e44128de96 bugfix udt member parsing 2024-02-17 21:26:23 -08:00
Ryan Fleury b93bb5904a more itype generation fixes 2024-02-17 17:14:11 -08:00
Ryan Fleury cfe089de8c eliminate forward reference parsing work in non-forward-reference cases 2024-02-17 12:31:15 -08:00
Ryan Fleury e752eebfc9 fix itype conversion 2024-02-17 10:50:56 -08:00
Ryan Fleury d0fe5b9e04 raddbgi make: export scope voffs section 2024-02-17 10:36:07 -08:00
Ryan Fleury c790ee3de0 fix reversed-order path building 2024-02-17 08:44:55 -08:00
Ryan Fleury 4f9e3bb4f5 clean up / debugging / bugfixes in new converter 2024-02-17 08:41:27 -08:00
Ryan Fleury e9d2cb82b2 eliminate all old raddbgi_make and raddbgi_from_pdb code 2024-02-16 13:46:55 -08:00
Ryan Fleury 5190530417 oops, remember units... 2024-02-16 13:44:42 -08:00
Ryan Fleury 626ad29b91 converge raddbg to new conversion/raddbgi-make layers 2024-02-16 13:39:52 -08:00
Ryan Fleury 178719c479 transfer over idx run baking 2024-02-16 13:35:00 -08:00
Ryan Fleury 9cccabfa21 transfer over string baking 2024-02-16 13:33:45 -08:00
Ryan Fleury 3735e82579 source file baking 2024-02-16 13:31:58 -08:00
Ryan Fleury 75263c5833 path node tree baking 2024-02-16 13:29:26 -08:00
Ryan Fleury c64fba90a1 transfer over name map baking 2024-02-16 13:26:43 -08:00
Ryan Fleury 3fb632c23d raddbgi_make: name maps 2024-02-16 13:11:57 -08:00
Ryan Fleury 7597bccd46 raddbgi from pdb: fix chunk list concats 2024-02-16 12:51:17 -08:00
Ryan Fleury 335f22e00b raddbgi_make & raddbgi_from_pdb: solve multithreaded 'indexing' problem - how do we correllate loose pointer relationships, constructed by various threads, with final indices in the baked file 2024-02-16 11:53:03 -08:00
Ryan Fleury a38241ebe0 raddbgi_make: overrideable profile macros; raddbgi_from_pdb: itype name resolution, link anme resolution 2024-02-16 11:18:48 -08:00
Ryan Fleury 5ae9259253 raddbgi_from_pdb: global variable, thread variable, procedure, scope, local, location info baking 2024-02-16 09:04:15 -08:00
Ryan Fleury 7646487a90 raddbgi_from_pdb: type info baking 2024-02-16 07:28:55 -08:00
Ryan Fleury e8ca548360 transfer over unit vmap baking 2024-02-15 16:11:24 -08:00
Ryan Fleury 5f1ab8fdb4 move over per-source-file line info baking 2024-02-15 15:56:20 -08:00
Ryan Fleury c3c1906d43 first pass over raddbgi make baking phase rewrite/cleanup pass, getting off of old cons API 2024-02-15 15:44:24 -08:00
Ryan Fleury a9c5ec8878 symbol conversion passes in new converter 2024-02-15 12:00:02 -08:00
Ryan Fleury a118ff79cd partial first pass over converter & raddbgi make layer rewrites/optimizations 2024-02-14 13:34:39 -08:00
Ryan Fleury f18e236431 a few more raddbgi, raddbgic -> rdi, rdim notes 2024-02-13 16:06:56 -08:00
Ryan Fleury 816f94ef71 further raddbgi -> rdi naming pass 2024-02-13 15:56:30 -08:00
Ryan Fleury b9f010dff6 raddbgi_ -> rdi_ 2024-02-13 15:52:53 -08:00
Ryan Fleury 30d2dea951 complete raddbgi_cons -> raddbgi_make 2024-02-13 15:38:38 -08:00
Ryan Fleury 87d9d0be05 readme 2024-02-13 15:37:27 -08:00
Ryan Fleury db35e09629 raddbgic -> rdim (rad debug info make) 2024-02-13 15:36:06 -08:00
Ryan Fleury 90dce510cc raddbgi_from_pdb: eliminate unnecessary files 2024-02-13 15:16:42 -08:00
Ryan Fleury fb56951264 collapse raddbgi_convert folder into just being separate from_pdb and from_dwarf layers 2024-02-13 15:12:40 -08:00
Ryan Fleury ecd21d0c1b pdbconv -> p2r 2024-02-13 15:05:46 -08:00
Ryan Fleury 67859f228b fix parse error checks in raddbgi_from_pdb 2024-02-13 14:37:59 -08:00
Ryan Fleury 348034a490 reading/cleanup/organization pass over main symbol conversion pass in raddbgi_from_pdb; automate & table-drive a few pieces via metacode tables 2024-02-13 14:26:01 -08:00
Ryan Fleury 725481fcc7 fix codeview struct 2024-02-13 13:36:15 -08:00
Ryan Fleury 608055e447 metagen: simplify catchall generations; move some codeview enums into metacode; generate enum->string code 2024-02-13 13:27:02 -08:00
Ryan Fleury 66a24a226a adjust contain -> center cursor threshold 2024-02-13 11:42:20 -08:00
Ryan Fleury 9c7fd0a411 metagen: simplify & straighten out table generation further; raddbgi_cons: fix incorrect str8_list_join 2024-02-13 11:38:43 -08:00
Ryan Fleury 348e93162a metagen: simplify & unify error gathering & printing path 2024-02-13 11:26:31 -08:00
Ryan Fleury 1d9dc2b9a9 metagen: simplify data tables 2024-02-13 11:16:45 -08:00
Ryan Fleury 742d2387e2 metagen: simplify metacode structs 2024-02-13 11:00:58 -08:00
Ryan Fleury ea840a71e8 metagen: simplify enum generation; reading/organization pass over raddbgi_from_pdb 2024-02-13 10:55:06 -08:00
Ryan Fleury 4a9e5512f6 fix this_function_name macro 2024-02-13 09:56:46 -08:00
Ryan Fleury ac30c8a84b add codeview/msf/pdb notes to readme 2024-02-13 09:53:52 -08:00
Ryan Fleury 7defce94c7 float codeview, msf, pdb layers up as regular codebase layers, and out of converter-specific code; clangify some builds 2024-02-13 09:51:50 -08:00
Ryan Fleury 017116aee9 formalize codebase's library exports; document in README 2024-02-13 09:27:52 -08:00
Ryan Fleury 8c70b5efc9 raddbgi_cons: get building standalone, without base layer; complete first pass of librarification 2024-02-13 08:58:10 -08:00
Ryan Fleury 4aa2cb655b further progress on raddbgi cons librarification 2024-02-12 21:05:05 -08:00
Ryan Fleury 440dcf21a2 further raddbg_cons librarification 2024-02-12 20:32:20 -08:00
Ryan Fleury 2a85e1d37d raddbgi cons: more overrides work 2024-02-12 19:10:31 -08:00
Ryan Fleury 7022c58018 begin libraryifying raddbgi_cons; switch to raddbgi_format types, or overrideable base-layer-style types; just override & include in codebase-local inclusion sites. next step is to break out this stuff, along with stringization, into a raddbgi helper layer 2024-02-12 16:17:54 -08:00
Ryan Fleury 840e1da5f3 update github workflows to new debug info naming 2024-02-12 15:26:06 -08:00
Ryan Fleury 02825f3b3e move raddbgi stringize into standalone layer 2024-02-12 15:22:41 -08:00
Ryan Fleury cf19b13b78 dump -> raddbgidump 2024-02-12 15:19:20 -08:00
Ryan Fleury ad4003e70d cons -> raddbgic 2024-02-12 15:17:23 -08:00
Ryan Fleury 5c33c410d3 flatten cons api; eliminate private/public distinction 2024-02-12 15:11:20 -08:00
Ryan Fleury d35bdf2128 adjust readme for new debug info naming convention 2024-02-12 15:08:40 -08:00
Ryan Fleury aa2a0948ba raddbg -> raddbgi 2024-02-12 15:03:13 -08:00
Ryan Fleury 4b68967fbe raddbg format stuff -> raddbgi; partial naming/organization over raddbgi_cons 2024-02-12 14:29:24 -08:00
Ryan Fleury cc26a22e40 apply cancel/ok ordering note from jeff 2024-02-12 10:33:04 -08:00
Ryan Fleury 4fde6addc4 raddbg_cons: parameterize bake ctx with bucket sizes; make initial prediction based on symbol count 2024-02-11 13:29:06 -08:00
Ryan Fleury 60b6e2d597 Merge branch 'dev' of https://github.com/EpicGames/raddebugger into dev 2024-02-11 09:23:37 -08:00
Ryan Fleury e5c35a4035 oops! fix wrong type fwd reference condition 2024-02-11 09:23:16 -08:00
Ryan Fleury 47bb3464e1 oops! 2024-02-11 09:23:06 -08:00
Ryan Fleury 2e8afad5f0 adjust conversion visualization; strip out old profiling markup 2024-02-10 19:40:19 -08:00
Ryan Fleury e7897f302f do some more fine tuning of symbol id hash functions used in pdb -> raddbg path; also eliminate unnecessary per-type work 2024-02-10 18:25:47 -08:00
Ryan Fleury c81ee6d9bc extend id -> handle cons APIs with separate hash channel, so usage code completely controls both unique IDs and how they're hashed; second pass at designing better local variable hashing function 2024-02-10 16:21:55 -08:00
Ryan Fleury 801518ea75 improve local map hash 2024-02-09 18:02:44 -08:00
Ryan Fleury ebfddabd0b raddbg cons: extend u64 -> ptr map api with separate channel for hash, which reduces scan space, independently from unique keys which were previously assumed to be a reasonable hash (which they weren't) 2024-02-09 16:59:42 -08:00
Ryan Fleury 6c872566af raddbg_from_pdb: greatly improve speed of line info combining pass; do not linearly scan for line numbers, use line as hash -> slot key and search only slots 2024-02-09 15:31:24 -08:00
Ryan Fleury 44d9b57eb5 track bucket collision counts, include in table diagnostics dump; finish moving pdb->raddbg conversion tables over to dynamic & heuristically chosen table sizes 2024-02-09 14:55:07 -08:00
Ryan Fleury cdb53ebed0 pdb -> raddbg table diagnostic dumping 2024-02-09 12:59:06 -08:00
Ryan Fleury 2d63234c92 eliminate static, absurdly large table sizes in all cases in pdb->raddbg path; markup & diagnostics of table sizes vs. counts, to begin gathering data for table size prediction path 2024-02-09 11:50:04 -08:00