I’ve built a debug version of libtvm.so so I can step through all the code and see what it’s doing. Symbols resolve fine, but since everything is encapsulated in a tvm::runtime::ObjectRef, it’s really difficult to see anything meaningful in the debugger. For example, here’s an attempt to dig down into a GraphCodegen object. It’s container in container in container, and once the bottom is hit, there’s nothing but a type index and a ref counter. (this is lldb on a mac)
How do TVM folks usually debug things while adding/modifying the tvm C++ source?