<div dir="ltr">Have you added any tests for any of the Go functionality yet?  If you have an AST Context, I assume there's at least some way to exercise some of this functionality, in which case it seems like there should be some tests.<div><br></div><div>maybe you've already been keeping up with this, just want to make sure.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 6, 2015 at 1:31 PM Ryan Brown via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org">lldb-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ribrdb<br>
Date: Tue Oct  6 15:29:31 2015<br>
New Revision: 249456<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=249456&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=249456&view=rev</a><br>
Log:<br>
Create GoLanguageRuntime.<br>
<br>
GoLanguageRuntime supports finding the runtime type for Go interfaces.<br>
<br>
Modified:<br>
    lldb/trunk/cmake/LLDBDependencies.cmake<br>
    lldb/trunk/lldb.xcodeproj/project.pbxproj<br>
    lldb/trunk/source/API/SystemInitializerFull.cpp<br>
    lldb/trunk/source/Plugins/LanguageRuntime/CMakeLists.txt<br>
    lldb/trunk/source/Symbol/GoASTContext.cpp<br>
<br>
Modified: lldb/trunk/cmake/LLDBDependencies.cmake<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=249456&r1=249455&r2=249456&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=249456&r1=249455&r2=249456&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/cmake/LLDBDependencies.cmake (original)<br>
+++ lldb/trunk/cmake/LLDBDependencies.cmake Tue Oct  6 15:29:31 2015<br>
@@ -47,6 +47,7 @@ set( LLDB_USED_LIBS<br>
   lldbPluginUnwindAssemblyX86<br>
   lldbPluginAppleObjCRuntime<br>
   lldbPluginRenderScriptRuntime<br>
+  lldbPluginLanguageRuntimeGo<br>
   lldbPluginCXXItaniumABI<br>
   lldbPluginABIMacOSX_arm<br>
   lldbPluginABIMacOSX_arm64<br>
<br>
Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=249456&r1=249455&r2=249456&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=249456&r1=249455&r2=249456&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/lldb.xcodeproj/project.pbxproj (original)<br>
+++ lldb/trunk/lldb.xcodeproj/project.pbxproj Tue Oct  6 15:29:31 2015<br>
@@ -821,6 +821,7 @@<br>
                9AC703AF117675410086C050 /* SBInstruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AC703AE117675410086C050 /* SBInstruction.cpp */; };<br>
                9AC703B1117675490086C050 /* SBInstructionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AC703B0117675490086C050 /* SBInstructionList.cpp */; };<br>
                A36FF33C17D8E94600244D40 /* OptionParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A36FF33B17D8E94600244D40 /* OptionParser.cpp */; };<br>
+               AE44FB3E1BB485960033EB62 /* GoLanguageRuntime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AE44FB3D1BB485960033EB62 /* GoLanguageRuntime.cpp */; };<br>
                AE6897281B94F6DE0018845D /* DWARFASTParserGo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AE6897261B94F6DE0018845D /* DWARFASTParserGo.cpp */; };<br>
                AE7F56291B8FE418001377A8 /* GoASTContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AEFFBA7C1AC4835D0087B932 /* GoASTContext.cpp */; };<br>
                AE8F624919EF3E1E00326B21 /* OperatingSystemGo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AE8F624719EF3E1E00326B21 /* OperatingSystemGo.cpp */; };<br>
@@ -2638,6 +2639,8 @@<br>
                9AF16CC7114086A1007A7B3F /* SBBreakpointLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBBreakpointLocation.cpp; path = source/API/SBBreakpointLocation.cpp; sourceTree = "<group>"; };<br>
                A36FF33B17D8E94600244D40 /* OptionParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionParser.cpp; sourceTree = "<group>"; };<br>
                A36FF33D17D8E98800244D40 /* OptionParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OptionParser.h; path = include/lldb/Host/OptionParser.h; sourceTree = "<group>"; };<br>
+               AE44FB3C1BB4858A0033EB62 /* GoLanguageRuntime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GoLanguageRuntime.h; path = Go/GoLanguageRuntime.h; sourceTree = "<group>"; };<br>
+               AE44FB3D1BB485960033EB62 /* GoLanguageRuntime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GoLanguageRuntime.cpp; path = Go/GoLanguageRuntime.cpp; sourceTree = "<group>"; };<br>
                AE6897261B94F6DE0018845D /* DWARFASTParserGo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DWARFASTParserGo.cpp; sourceTree = "<group>"; };<br>
                AE6897271B94F6DE0018845D /* DWARFASTParserGo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DWARFASTParserGo.h; sourceTree = "<group>"; };<br>
                AE8F624719EF3E1E00326B21 /* OperatingSystemGo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OperatingSystemGo.cpp; path = Go/OperatingSystemGo.cpp; sourceTree = "<group>"; };<br>
@@ -5129,6 +5132,7 @@<br>
                4CCA643A13B40B82003BDF98 /* LanguageRuntime */ = {<br>
                        isa = PBXGroup;<br>
                        children = (<br>
+                               AE44FB3B1BB485730033EB62 /* Go */,<br>
                                49724D961AD6ECFA0033C538 /* RenderScript */,<br>
                                4CCA643B13B40B82003BDF98 /* CPlusPlus */,<br>
                                4CCA644013B40B82003BDF98 /* ObjC */,<br>
@@ -5456,6 +5460,15 @@<br>
                        name = "SysV-mips";<br>
                        sourceTree = "<group>";<br>
                };<br>
+               AE44FB3B1BB485730033EB62 /* Go */ = {<br>
+                       isa = PBXGroup;<br>
+                       children = (<br>
+                               AE44FB3C1BB4858A0033EB62 /* GoLanguageRuntime.h */,<br>
+                               AE44FB3D1BB485960033EB62 /* GoLanguageRuntime.cpp */,<br>
+                       );<br>
+                       name = Go;<br>
+                       sourceTree = "<group>";<br>
+               };<br>
                AE8F624519EF3DFC00326B21 /* Go */ = {<br>
                        isa = PBXGroup;<br>
                        children = (<br>
@@ -6292,6 +6305,7 @@<br>
                                266E829D1B8E542C008FCA06 /* DWARFAttribute.cpp in Sources */,<br>
                                2689004613353E0400698AC0 /* ModuleList.cpp in Sources */,<br>
                                2689004713353E0400698AC0 /* PluginManager.cpp in Sources */,<br>
+                               AE44FB3E1BB485960033EB62 /* GoLanguageRuntime.cpp in Sources */,<br>
                                AF0C112818580CD800C4C45B /* QueueItem.cpp in Sources */,<br>
                                AF254E31170CCC33007AE5C9 /* PlatformDarwinKernel.cpp in Sources */,<br>
                                2689004813353E0400698AC0 /* RegularExpression.cpp in Sources */,<br>
<br>
Modified: lldb/trunk/source/API/SystemInitializerFull.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SystemInitializerFull.cpp?rev=249456&r1=249455&r2=249456&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SystemInitializerFull.cpp?rev=249456&r1=249455&r2=249456&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/source/API/SystemInitializerFull.cpp (original)<br>
+++ lldb/trunk/source/API/SystemInitializerFull.cpp Tue Oct  6 15:29:31 2015<br>
@@ -49,6 +49,7 @@<br>
 #include "Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h"<br>
 #include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h"<br>
 #include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h"<br>
+#include "Plugins/LanguageRuntime/Go/GoLanguageRuntime.h"<br>
 #include "Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h"<br>
 #include "Plugins/MemoryHistory/asan/MemoryHistoryASan.h"<br>
 #include "Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h"<br>
@@ -289,6 +290,7 @@ SystemInitializerFull::Initialize()<br>
     AppleObjCRuntimeV1::Initialize();<br>
     SystemRuntimeMacOSX::Initialize();<br>
     RenderScriptRuntime::Initialize();<br>
+    GoLanguageRuntime::Initialize();<br>
<br>
     CPlusPlusLanguage::Initialize();<br>
     ObjCLanguage::Initialize();<br>
<br>
Modified: lldb/trunk/source/Plugins/LanguageRuntime/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/CMakeLists.txt?rev=249456&r1=249455&r2=249456&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/CMakeLists.txt?rev=249456&r1=249455&r2=249456&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/source/Plugins/LanguageRuntime/CMakeLists.txt (original)<br>
+++ lldb/trunk/source/Plugins/LanguageRuntime/CMakeLists.txt Tue Oct  6 15:29:31 2015<br>
@@ -1,3 +1,4 @@<br>
 add_subdirectory(CPlusPlus)<br>
 add_subdirectory(ObjC)<br>
+add_subdirectory(Go)<br>
 add_subdirectory(RenderScript)<br>
<br>
Modified: lldb/trunk/source/Symbol/GoASTContext.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/GoASTContext.cpp?rev=249456&r1=249455&r2=249456&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/GoASTContext.cpp?rev=249456&r1=249455&r2=249456&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/source/Symbol/GoASTContext.cpp (original)<br>
+++ lldb/trunk/source/Symbol/GoASTContext.cpp Tue Oct  6 15:29:31 2015<br>
@@ -1184,6 +1184,9 @@ GoASTContext::GetChildCompilerTypeAtInde<br>
 uint32_t<br>
 GoASTContext::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes)<br>
 {<br>
+    if (!type || !GetCompleteType(type))<br>
+        return UINT_MAX;<br>
+<br>
     GoType *t = static_cast<GoType *>(type);<br>
     GoStruct *s = t->GetStruct();<br>
     if (s)<br>
<br>
<br>
_______________________________________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a><br>
</blockquote></div>