<div dir="ltr">I'm trying to support printing go interfaces. <div>After reading through the list archives, it seems like the way to do this is add my Go type information to ClangASTType and implement a GoLanguageRuntime.</div><div>So I added a "int m_go_kind" field to ClangASTType and set it in SymbolFileDWARF. However I'm having a couple issues:</div><div><br></div><div>1) It seems like some places create new ClangASTTypes directly instead of using the ones from the DWARF info. So if I use 'frame variable' I see the dynamic type, but if I do 'print g' the go type info gets lost.</div><div><br></div><div>2) The dynamic values always seem to print as invalid, even though it seems like I'm returning the right thing from GetDynamicTypeAndAddress. For example:</div><div><div>(lldb) frame variable</div><div>(main.square) g = (width = <parent has invalid value.>, height = <parent has invalid value.>)</div></div><div><br></div><div>But if I step through the code after GetDynamicTypeAndAddress returns, it looks like it's successfully reading the data. I can print the actual value from python:</div><div><br></div><div><div>>>> g = lldb.frame.EvaluateExpression("g")</div><div>>>> print g</div><div>(main.geometry) $1 = {</div><div>  tab = 0x00007ffff7fcf6f0</div><div>  data = 0x000000c20800a210</div><div>}</div><div>>>> d = g.GetChildAtIndex(1)</div></div><div><div>>>> print d.Cast(t.GetPointerType()).Dereference()</div><div>(main.square) *data = (width = 3, height = 4)</div></div><div><br></div><div>And these addresses are the same ones my C++ code is returning, so I don't know what's wrong.</div></div>