Re: [Lldb-commits] [lldb] r277443 - Support for OCaml native debugging

2016-08-03 Thread Jim Ingham via lldb-commits
r277660 should do it.

Jim

> On Aug 3, 2016, at 3:04 PM, Jim Ingham  wrote:
> 
> Just finishing off a test build.  Give me a minute and I'll check it in.
> 
> Jim
> 
>> On Aug 3, 2016, at 2:22 PM, Tamas Berghammer via lldb-commits 
>>  wrote:
>> 
>> It is failing because the new files have to be added to the xcode project. 
>> Currently I don't have a Mac around to do it but if nobody fixes it then I 
>> will try to find one.
>> 
>> Tamás
>> 
>> On Wed, 3 Aug 2016, 21:17 Tim Hammerquist,  wrote:
>> Hi Tamas,
>> 
>> It looks like the LLDB Build and Check job started failing around the time 
>> of this commit. You can see the error at this link:
>> 
>> http://lab.llvm.org:8080/green/job/lldb_build_test/19751/consoleFull#-1586822805dd1929ea-7054-4089-b7ef-4624c3781fa4
>> 
>> Could you take a look?
>> 
>> Thanks,
>> -Tim
>> 
>> 
>> On Tue, Aug 2, 2016 at 4:15 AM, Tamas Berghammer via lldb-commits 
>>  wrote:
>> Author: tberghammer
>> Date: Tue Aug  2 06:15:55 2016
>> New Revision: 277443
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=277443=rev
>> Log:
>> Support for OCaml native debugging
>> 
>> This introduces basic support for debugging OCaml binaries.
>> Use of the native compiler with DWARF emission support (see
>> https://github.com/ocaml/ocaml/pull/574) is required.
>> 
>> Available variables are considered as 64 bits unsigned integers,
>> their interpretation will be left to a OCaml-made debugging layer.
>> 
>> Differential revision: https://reviews.llvm.org/D22132
>> 
>> Added:
>>lldb/trunk/include/lldb/Symbol/OCamlASTContext.h
>>lldb/trunk/source/Plugins/Language/OCaml/
>>lldb/trunk/source/Plugins/Language/OCaml/CMakeLists.txt
>>lldb/trunk/source/Plugins/Language/OCaml/OCamlLanguage.cpp
>>lldb/trunk/source/Plugins/Language/OCaml/OCamlLanguage.h
>>lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp
>>lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.h
>>lldb/trunk/source/Symbol/OCamlASTContext.cpp
>> Modified:
>>lldb/trunk/cmake/LLDBDependencies.cmake
>>lldb/trunk/include/lldb/Symbol/TypeSystem.h
>>lldb/trunk/source/API/SystemInitializerFull.cpp
>>lldb/trunk/source/Plugins/Language/CMakeLists.txt
>>lldb/trunk/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
>>lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
>>lldb/trunk/source/Symbol/CMakeLists.txt
>> 
>> Modified: lldb/trunk/cmake/LLDBDependencies.cmake
>> URL: 
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=277443=277442=277443=diff
>> ==
>> --- lldb/trunk/cmake/LLDBDependencies.cmake (original)
>> +++ lldb/trunk/cmake/LLDBDependencies.cmake Tue Aug  2 06:15:55 2016
>> @@ -27,6 +27,7 @@ set( LLDB_USED_LIBS
>>   lldbPluginJavaLanguage
>>   lldbPluginObjCLanguage
>>   lldbPluginObjCPlusPlusLanguage
>> +  lldbPluginOCamlLanguage
>> 
>>   lldbPluginObjectFileELF
>>   lldbPluginObjectFileJIT
>> 
>> Added: lldb/trunk/include/lldb/Symbol/OCamlASTContext.h
>> URL: 
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/OCamlASTContext.h?rev=277443=auto
>> ==
>> --- lldb/trunk/include/lldb/Symbol/OCamlASTContext.h (added)
>> +++ lldb/trunk/include/lldb/Symbol/OCamlASTContext.h Tue Aug  2 06:15:55 2016
>> @@ -0,0 +1,355 @@
>> +//===-- OCamlASTContext.h --*- C++ 
>> -*-===//
>> +//
>> +// The LLVM Compiler Infrastructure
>> +//
>> +// This file is distributed under the University of Illinois Open Source
>> +// License. See LICENSE.TXT for details.
>> +//
>> +//===--===//
>> +
>> +#ifndef liblldb_OCamlASTContext_h_
>> +#define liblldb_OCamlASTContext_h_
>> +
>> +// C Includes
>> +// C++ Includes
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +
>> +// Other libraries and framework includes
>> +// Project includes
>> +#include "lldb/Core/ConstString.h"
>> +#include "lldb/Symbol/TypeSystem.h"
>> +#include "lldb/Symbol/CompilerType.h"
>> +
>> +namespace lldb_private
>> +{
>> +
>> +class OCamlASTContext : public TypeSystem
>> +{
>> +  public:
>> +class OCamlType;
>> +typedef std::map OCamlTypeMap;
>> +
>> +OCamlASTContext();
>> +~OCamlASTContext() override;
>> +
>> +ConstString
>> +GetPluginName() override;
>> +
>> +uint32_t
>> +GetPluginVersion() override;
>> +
>> +static ConstString
>> +GetPluginNameStatic ();
>> +
>> +static lldb::TypeSystemSP
>> +CreateInstance (lldb::LanguageType language, Module *module, Target 
>> *target);
>> +
>> +static void
>> +EnumerateSupportedLanguages(std::set 
>> _for_types,
>> + 

Re: [Lldb-commits] [lldb] r277443 - Support for OCaml native debugging

2016-08-03 Thread Jim Ingham via lldb-commits
Just finishing off a test build.  Give me a minute and I'll check it in.

Jim

> On Aug 3, 2016, at 2:22 PM, Tamas Berghammer via lldb-commits 
>  wrote:
> 
> It is failing because the new files have to be added to the xcode project. 
> Currently I don't have a Mac around to do it but if nobody fixes it then I 
> will try to find one.
> 
> Tamás
> 
> On Wed, 3 Aug 2016, 21:17 Tim Hammerquist,  wrote:
> Hi Tamas,
> 
> It looks like the LLDB Build and Check job started failing around the time of 
> this commit. You can see the error at this link:
> 
> http://lab.llvm.org:8080/green/job/lldb_build_test/19751/consoleFull#-1586822805dd1929ea-7054-4089-b7ef-4624c3781fa4
> 
> Could you take a look?
> 
> Thanks,
> -Tim
> 
> 
> On Tue, Aug 2, 2016 at 4:15 AM, Tamas Berghammer via lldb-commits 
>  wrote:
> Author: tberghammer
> Date: Tue Aug  2 06:15:55 2016
> New Revision: 277443
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=277443=rev
> Log:
> Support for OCaml native debugging
> 
> This introduces basic support for debugging OCaml binaries.
> Use of the native compiler with DWARF emission support (see
> https://github.com/ocaml/ocaml/pull/574) is required.
> 
> Available variables are considered as 64 bits unsigned integers,
> their interpretation will be left to a OCaml-made debugging layer.
> 
> Differential revision: https://reviews.llvm.org/D22132
> 
> Added:
> lldb/trunk/include/lldb/Symbol/OCamlASTContext.h
> lldb/trunk/source/Plugins/Language/OCaml/
> lldb/trunk/source/Plugins/Language/OCaml/CMakeLists.txt
> lldb/trunk/source/Plugins/Language/OCaml/OCamlLanguage.cpp
> lldb/trunk/source/Plugins/Language/OCaml/OCamlLanguage.h
> lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp
> lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.h
> lldb/trunk/source/Symbol/OCamlASTContext.cpp
> Modified:
> lldb/trunk/cmake/LLDBDependencies.cmake
> lldb/trunk/include/lldb/Symbol/TypeSystem.h
> lldb/trunk/source/API/SystemInitializerFull.cpp
> lldb/trunk/source/Plugins/Language/CMakeLists.txt
> lldb/trunk/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
> lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
> lldb/trunk/source/Symbol/CMakeLists.txt
> 
> Modified: lldb/trunk/cmake/LLDBDependencies.cmake
> URL: 
> http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=277443=277442=277443=diff
> ==
> --- lldb/trunk/cmake/LLDBDependencies.cmake (original)
> +++ lldb/trunk/cmake/LLDBDependencies.cmake Tue Aug  2 06:15:55 2016
> @@ -27,6 +27,7 @@ set( LLDB_USED_LIBS
>lldbPluginJavaLanguage
>lldbPluginObjCLanguage
>lldbPluginObjCPlusPlusLanguage
> +  lldbPluginOCamlLanguage
> 
>lldbPluginObjectFileELF
>lldbPluginObjectFileJIT
> 
> Added: lldb/trunk/include/lldb/Symbol/OCamlASTContext.h
> URL: 
> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/OCamlASTContext.h?rev=277443=auto
> ==
> --- lldb/trunk/include/lldb/Symbol/OCamlASTContext.h (added)
> +++ lldb/trunk/include/lldb/Symbol/OCamlASTContext.h Tue Aug  2 06:15:55 2016
> @@ -0,0 +1,355 @@
> +//===-- OCamlASTContext.h --*- C++ 
> -*-===//
> +//
> +// The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===--===//
> +
> +#ifndef liblldb_OCamlASTContext_h_
> +#define liblldb_OCamlASTContext_h_
> +
> +// C Includes
> +// C++ Includes
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +// Other libraries and framework includes
> +// Project includes
> +#include "lldb/Core/ConstString.h"
> +#include "lldb/Symbol/TypeSystem.h"
> +#include "lldb/Symbol/CompilerType.h"
> +
> +namespace lldb_private
> +{
> +
> +class OCamlASTContext : public TypeSystem
> +{
> +  public:
> +class OCamlType;
> +typedef std::map OCamlTypeMap;
> +
> +OCamlASTContext();
> +~OCamlASTContext() override;
> +
> +ConstString
> +GetPluginName() override;
> +
> +uint32_t
> +GetPluginVersion() override;
> +
> +static ConstString
> +GetPluginNameStatic ();
> +
> +static lldb::TypeSystemSP
> +CreateInstance (lldb::LanguageType language, Module *module, Target 
> *target);
> +
> +static void
> +EnumerateSupportedLanguages(std::set 
> _for_types,
> +std::set 
> _for_expressions);
> +
> +static void
> +Initialize ();
> +
> +static void
> +Terminate ();
> +
> +DWARFASTParser *GetDWARFParser() override;
> +
> +void
> +

[Lldb-commits] [lldb] r277443 - Support for OCaml native debugging

2016-08-02 Thread Tamas Berghammer via lldb-commits
Author: tberghammer
Date: Tue Aug  2 06:15:55 2016
New Revision: 277443

URL: http://llvm.org/viewvc/llvm-project?rev=277443=rev
Log:
Support for OCaml native debugging

This introduces basic support for debugging OCaml binaries.
Use of the native compiler with DWARF emission support (see
https://github.com/ocaml/ocaml/pull/574) is required.

Available variables are considered as 64 bits unsigned integers,
their interpretation will be left to a OCaml-made debugging layer.

Differential revision: https://reviews.llvm.org/D22132

Added:
lldb/trunk/include/lldb/Symbol/OCamlASTContext.h
lldb/trunk/source/Plugins/Language/OCaml/
lldb/trunk/source/Plugins/Language/OCaml/CMakeLists.txt
lldb/trunk/source/Plugins/Language/OCaml/OCamlLanguage.cpp
lldb/trunk/source/Plugins/Language/OCaml/OCamlLanguage.h
lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp
lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.h
lldb/trunk/source/Symbol/OCamlASTContext.cpp
Modified:
lldb/trunk/cmake/LLDBDependencies.cmake
lldb/trunk/include/lldb/Symbol/TypeSystem.h
lldb/trunk/source/API/SystemInitializerFull.cpp
lldb/trunk/source/Plugins/Language/CMakeLists.txt
lldb/trunk/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
lldb/trunk/source/Symbol/CMakeLists.txt

Modified: lldb/trunk/cmake/LLDBDependencies.cmake
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=277443=277442=277443=diff
==
--- lldb/trunk/cmake/LLDBDependencies.cmake (original)
+++ lldb/trunk/cmake/LLDBDependencies.cmake Tue Aug  2 06:15:55 2016
@@ -27,6 +27,7 @@ set( LLDB_USED_LIBS
   lldbPluginJavaLanguage
   lldbPluginObjCLanguage
   lldbPluginObjCPlusPlusLanguage
+  lldbPluginOCamlLanguage
 
   lldbPluginObjectFileELF
   lldbPluginObjectFileJIT

Added: lldb/trunk/include/lldb/Symbol/OCamlASTContext.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/OCamlASTContext.h?rev=277443=auto
==
--- lldb/trunk/include/lldb/Symbol/OCamlASTContext.h (added)
+++ lldb/trunk/include/lldb/Symbol/OCamlASTContext.h Tue Aug  2 06:15:55 2016
@@ -0,0 +1,355 @@
+//===-- OCamlASTContext.h --*- C++ 
-*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef liblldb_OCamlASTContext_h_
+#define liblldb_OCamlASTContext_h_
+
+// C Includes
+// C++ Includes
+#include 
+#include 
+#include 
+#include 
+#include 
+
+// Other libraries and framework includes
+// Project includes
+#include "lldb/Core/ConstString.h"
+#include "lldb/Symbol/TypeSystem.h"
+#include "lldb/Symbol/CompilerType.h"
+
+namespace lldb_private
+{
+
+class OCamlASTContext : public TypeSystem
+{
+  public:
+class OCamlType;
+typedef std::map OCamlTypeMap;
+
+OCamlASTContext();
+~OCamlASTContext() override;
+
+ConstString
+GetPluginName() override;
+
+uint32_t
+GetPluginVersion() override;
+
+static ConstString
+GetPluginNameStatic ();
+
+static lldb::TypeSystemSP
+CreateInstance (lldb::LanguageType language, Module *module, Target 
*target);
+
+static void
+EnumerateSupportedLanguages(std::set 
_for_types,
+std::set 
_for_expressions);
+
+static void
+Initialize ();
+
+static void
+Terminate ();
+
+DWARFASTParser *GetDWARFParser() override;
+
+void
+SetAddressByteSize(int byte_size)
+{
+m_pointer_byte_size = byte_size;
+}
+
+static bool classof(const TypeSystem *ts)
+{
+return ts->getKind() == TypeSystem::eKindOCaml;
+}
+
+ConstString
+DeclGetName (void *opaque_decl) override
+{
+return ConstString();
+}
+
+bool
+DeclContextIsStructUnionOrClass(void *opaque_decl_ctx) override
+{
+return false;
+}
+
+ConstString
+DeclContextGetName(void *opaque_decl_ctx) override
+{
+return ConstString();
+}
+
+ConstString
+DeclContextGetScopeQualifiedName(void *opaque_decl_ctx) override
+{
+return ConstString();
+}
+
+bool
+DeclContextIsClassMethod(void *opaque_decl_ctx, lldb::LanguageType 
*language_ptr,
+ bool *is_instance_method_ptr,
+ ConstString *language_object_name_ptr) override
+{
+return false;
+}
+
+bool SupportsLanguage (lldb::LanguageType language) override;
+uint32_t GetPointerByteSize() override;
+
+bool
+IsArrayType(lldb::opaque_compiler_type_t type,