-
Notifications
You must be signed in to change notification settings - Fork 801
Description
I mentioned this in a recent comment, but I'd like to get more feedback on this idea.
Many of the commands end up marshaling a bunch of expressions back and forth between LLDB's python interpreter and the target app, but this has proven to be slowish at times. For example the manual path pvc is a fair bit slower than the path that uses +[UIViewController _printHierarchy].
I believe there could be a solid usability and maintainability improvement if we divided the architecture into two halves:
- Code that interacts with LLDB's interfaces.
- Code that interacts with the app's objects and data.
I think we could bundle a dynamic library and have Chisel load that into the app via target modules addprocess load. This adds some complexity, but the benefits would be faster interaction & feedback with Chisel commands, and also I think this would smooth the path toward adding testing to the project. Plus not having to write objc encoded in python strings is an improvement.
cc @arigrant @mattjgalloway @mmmulani @dstnbrkr @KingOfBrian @kolinkrewinkel