facebookexperimental / object-introspection

Object Introspection (OI) enables on-demand, hierarchical profiling of objects in arbitrary C/C++ programs with no recompilation.
Apache License 2.0
164 stars 14 forks source link

Type Graph: Replace MutationTracker with the more general ResultTracker #431

Closed ajor closed 10 months ago

ajor commented 10 months ago

MutationTracker could only store Type nodes, while ResultTracker is templated on the result type so can store anything.

Template the Visitor base class on the return type of visit() functions.

This sets us up for allowing visitors to return different results from their visit() functions in the future.

This will be used in a future commit introducing DrgnExporter, where we cache drgn_type* results while walking the type graph: #425