Re: [Lldb-commits] [lldb] r277443 - Support for OCaml native debugging
r277660 should do it. Jim > On Aug 3, 2016, at 3:04 PM, Jim Inghamwrote: > > 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
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
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::mapOCamlTypeMap; + +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,