mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 17:28:07 +00:00
notes for next RDI pass to support namespacing, support scope-based lookups for local-statics, support fully-qualified namespace name resolution, & simplify/merge RDI variable symbol types, & reduce a lot of size in RDIs!
This commit is contained in:
@@ -4,6 +4,20 @@
|
||||
////////////////////////////////
|
||||
//~ rjf: post-0.9.20 TODO notes
|
||||
//
|
||||
//- namespace/locations/variables RDI pass
|
||||
// [ ] RDI_Local, RDI_GlobalVariable, RDI_ThreadVariable -> RDI_Variable
|
||||
// [ ] RDI_Variable gets RDI_ContainerFlags, and a container_idx
|
||||
// [ ] RDI_Namespace can be a container, same as types/procedures
|
||||
// [ ] If procedure-contained, then index goes to scope now, not procedure
|
||||
// [ ] Location sections -> split by location kind, fixed tables for simple locations, one catch-all table for bytecode.
|
||||
// [ ] Location kind -> can be thread-local offset, or module virtual offset, to enclose globals/tlocals cases
|
||||
// [ ] Referring to one location -> kind * index
|
||||
// [ ] Referring to many locations, based on scope offsets -> kind = BlockList; BlockList encodes a first/opl pair into Block table, each Block has scope_off_first/opl, location_kind, location_idx - but a block's location kind CANNOT BE BlockList
|
||||
// [ ] RDI_Variable has location_kind, location_idx
|
||||
// [ ] symbols only store their *partly-qualified name*, e.g. `x` for A::B::C::x
|
||||
// [ ] default name maps look up *partly-qualified names*
|
||||
// [ ] to match a *fully qualified name*, there needs to be a second kind of different lookup - instead of string-matching, we need to match against the *fully qualified names*. the maps must be built by hashing the *fully qualified name*, but redirecting to the symbol with the *partially qualified name*. this is to allow fully-qualified lookups, but avoid storing fully-qualified names.
|
||||
//
|
||||
//- urgent fixes
|
||||
// [ ] (use msvc assert as an example) show fastfail exception info (code, name, etc.) - comes from ExceptionInformation @fastfail
|
||||
// [ ] stepping w/ spoofs & shadow stack enabled - writing spoof will send a stack buffer overrun event @shadow_stack_step
|
||||
|
||||
Reference in New Issue
Block a user