Re: [Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter

2016-09-28 Thread Tim Hammerquist via lldb-commits
Yep, looks like r282565 fixed the llvm.org tests, but broke another bot.
r282566 fixed the other bot, but broke the llvm.org tests again.

http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20757/

On Wed, Sep 28, 2016 at 1:48 PM, Tim Hammerquist  wrote:

> Looks like there was some work to address this in r282565 here:
>
> http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20756/
>
> However, the issue occurred again on the very next run.
>
> On Wed, Sep 28, 2016 at 1:41 PM, Tim Hammerquist  wrote:
>
>> This change seems to have introduced a linker failure while building the
>> gtest suite:
>>
>>
>> Ld build/Release/lldb-gtest normal x86_64
>> cd "/Users/buildslave/jenkins/sharedspace/lldb@2/lldb"
>> export MACOSX_DEPLOYMENT_TARGET=10.9
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeD
>> efault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.
>> platform/Developer/SDKs/MacOSX10.11.sdk -L/Users/buildslave/jenkins/sh
>> aredspace/lldb@2/lldb/build/Release -F/Users/buildslave/jenkins/sh
>> aredspace/lldb@2/lldb/build/Release -F/Applications/Xcode.app/Cont
>> ents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
>> MacOSX10.11.sdk/System/Library/PrivateFrameworks
>> -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOS
>> X.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library
>> /Frameworks/CoreServices.framework/Frameworks -filelist
>> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/lldb
>> .build/Release/lldb-gtest-build.build/Objects-normal/x86_64/lldb-gtest.LinkFileList
>> -mmacosx-version-min=10.9 -weak-lcompression -lz -filelist
>> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/llvm-build/Release+Asserts/archives.txt
>> -framework Foundation -framework DebugSymbols -framework Security
>> -framework CoreServices -framework ApplicationServices
>> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/llvm-build
>> /Release+Asserts/x86_64/lib/libgtest.a -L 
>> /System/Library/Frameworks/Python.framework/Versions/2.7/lib
>> -l python2.7 -stdlib=libc++ -lxml2.2 -lpanel -ledit -lz -lncurses
>> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release/liblldb-core.a
>> -Xlinker -dependency_info -Xlinker /Users/buildslave/jenkins/shar
>> edspace/lldb@2/lldb/build/lldb.build/Release/lldb-gtest-buil
>> d.build/Objects-normal/x86_64/lldb-gtest_dependency_info.dat -o
>> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Rele
>> ase/lldb-gtest
>> Undefined symbols for architecture x86_64:
>>   
>> "lldb_private::minidump::ConvertMinidumpContextToRegIface(llvm::ArrayRef> char>, lldb_private::RegisterInfoInterface*)", referenced from:
>>   MinidumpParserTest_ConvertRegisterContext_Test::TestBody() in
>> MinidumpParserTest.o
>> ld: symbol(s) not found for architecture x86_64
>>
>>
>> It first struck yesterday afternoon:
>>
>> http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_
>> test/20745/console
>>
>> and recurring through today:
>>
>> http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_
>> test/20770/console
>>
>> Is there a change that needs to be made to the test suite to address this?
>>
>>
>> On Tue, Sep 27, 2016 at 12:05 PM, Dimitar Vlahovski via lldb-commits <
>> lldb-commits@lists.llvm.org> wrote:
>>
>>> Author: dvlahovski
>>> Date: Tue Sep 27 14:05:55 2016
>>> New Revision: 282529
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=282529=rev
>>> Log:
>>> Adding a RegisterContextMinidump_x86_64 converter
>>>
>>> Summary:
>>> This is a register context converter from Minidump to Linux reg context.
>>> This knows the layout of the register context in the Minidump file
>>> (which is the same as in Windows FYI) and as a result emits a binary data
>>> buffer that matches the Linux register context binary layout.
>>> This way we can reuse the existing RegisterContextLinux_x86_64 and
>>> RegisterContextCorePOSIX_x86_64 classes.
>>>
>>> Reviewers: labath, zturner
>>>
>>> Subscribers: beanz, mgorny, lldb-commits, amccarth
>>>
>>> Differential Revision: https://reviews.llvm.org/D24919
>>>
>>> Added:
>>> lldb/trunk/source/Plugins/Process/minidump/RegisterContextMi
>>> nidump_x86_64.cpp
>>> lldb/trunk/source/Plugins/Process/minidump/RegisterContextMi
>>> nidump_x86_64.h
>>> Modified:
>>> lldb/trunk/include/lldb/lldb-private-types.h
>>> lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt
>>> lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp
>>> lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
>>> lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp
>>>
>>> Modified: lldb/trunk/include/lldb/lldb-private-types.h
>>> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/
>>> lldb-private-types.h?rev=282529=282528=282529=diff
>>> 
>>> ==
>>> --- 

Re: [Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter

2016-09-28 Thread Tim Hammerquist via lldb-commits
Looks like there was some work to address this in r282565 here:

http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20756/

However, the issue occurred again on the very next run.

On Wed, Sep 28, 2016 at 1:41 PM, Tim Hammerquist  wrote:

> This change seems to have introduced a linker failure while building the
> gtest suite:
>
>
> Ld build/Release/lldb-gtest normal x86_64
> cd "/Users/buildslave/jenkins/sharedspace/lldb@2/lldb"
> export MACOSX_DEPLOYMENT_TARGET=10.9
> /Applications/Xcode.app/Contents/Developer/Toolchains/
> XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot
> /Applications/Xcode.app/Contents/Developer/Platforms/
> MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
> -L/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release
> -F/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release
> -F/Applications/Xcode.app/Contents/Developer/Platforms/
> MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/PrivateFrameworks
> -F/Applications/Xcode.app/Contents/Developer/Platforms/
> MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/
> CoreServices.framework/Frameworks -filelist /Users/buildslave/jenkins/
> sharedspace/lldb@2/lldb/build/lldb.build/Release/lldb-gtest-
> build.build/Objects-normal/x86_64/lldb-gtest.LinkFileList
> -mmacosx-version-min=10.9 -weak-lcompression -lz -filelist
> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/llvm-
> build/Release+Asserts/archives.txt -framework Foundation -framework
> DebugSymbols -framework Security -framework CoreServices -framework
> ApplicationServices /Users/buildslave/jenkins/sharedspace/lldb@2
> /lldb/llvm-build/Release+Asserts/x86_64/lib/libgtest.a -L
> /System/Library/Frameworks/Python.framework/Versions/2.7/lib -l python2.7
> -stdlib=libc++ -lxml2.2 -lpanel -ledit -lz -lncurses
> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release/liblldb-core.a
> -Xlinker -dependency_info -Xlinker /Users/buildslave/jenkins/
> sharedspace/lldb@2/lldb/build/lldb.build/Release/lldb-gtest-
> build.build/Objects-normal/x86_64/lldb-gtest_dependency_info.dat -o
> /Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release/lldb-gtest
> Undefined symbols for architecture x86_64:
>   
> "lldb_private::minidump::ConvertMinidumpContextToRegIface(llvm::ArrayRef char>, lldb_private::RegisterInfoInterface*)", referenced from:
>   MinidumpParserTest_ConvertRegisterContext_Test::TestBody() in
> MinidumpParserTest.o
> ld: symbol(s) not found for architecture x86_64
>
>
> It first struck yesterday afternoon:
>
> http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20745/console
>
> and recurring through today:
>
> http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20770/console
>
> Is there a change that needs to be made to the test suite to address this?
>
>
> On Tue, Sep 27, 2016 at 12:05 PM, Dimitar Vlahovski via lldb-commits <
> lldb-commits@lists.llvm.org> wrote:
>
>> Author: dvlahovski
>> Date: Tue Sep 27 14:05:55 2016
>> New Revision: 282529
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=282529=rev
>> Log:
>> Adding a RegisterContextMinidump_x86_64 converter
>>
>> Summary:
>> This is a register context converter from Minidump to Linux reg context.
>> This knows the layout of the register context in the Minidump file
>> (which is the same as in Windows FYI) and as a result emits a binary data
>> buffer that matches the Linux register context binary layout.
>> This way we can reuse the existing RegisterContextLinux_x86_64 and
>> RegisterContextCorePOSIX_x86_64 classes.
>>
>> Reviewers: labath, zturner
>>
>> Subscribers: beanz, mgorny, lldb-commits, amccarth
>>
>> Differential Revision: https://reviews.llvm.org/D24919
>>
>> Added:
>> lldb/trunk/source/Plugins/Process/minidump/RegisterContextMi
>> nidump_x86_64.cpp
>> lldb/trunk/source/Plugins/Process/minidump/RegisterContextMi
>> nidump_x86_64.h
>> Modified:
>> lldb/trunk/include/lldb/lldb-private-types.h
>> lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt
>> lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp
>> lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
>> lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp
>>
>> Modified: lldb/trunk/include/lldb/lldb-private-types.h
>> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/
>> lldb-private-types.h?rev=282529=282528=282529=diff
>> 
>> ==
>> --- lldb/trunk/include/lldb/lldb-private-types.h (original)
>> +++ lldb/trunk/include/lldb/lldb-private-types.h Tue Sep 27 14:05:55 2016
>> @@ -14,6 +14,8 @@
>>
>>  #include "lldb/lldb-private.h"
>>
>> +#include "llvm/ADT/ArrayRef.h"
>> +
>>  namespace llvm {
>>  namespace sys {
>>  class DynamicLibrary;
>> @@ -61,6 +63,15 @@ struct RegisterInfo {
>>// the byte size of this register.
>>size_t dynamic_size_dwarf_len; // The length of the 

Re: [Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter

2016-09-28 Thread Tim Hammerquist via lldb-commits
This change seems to have introduced a linker failure while building the
gtest suite:


Ld build/Release/lldb-gtest normal x86_64
cd "/Users/buildslave/jenkins/sharedspace/lldb@2/lldb"
export MACOSX_DEPLOYMENT_TARGET=10.9

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch x86_64 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
-L/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release
-F/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release
-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/PrivateFrameworks
-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks
-filelist 
/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/lldb.build/Release/lldb-gtest-build.build/Objects-normal/x86_64/lldb-gtest.LinkFileList
-mmacosx-version-min=10.9 -weak-lcompression -lz -filelist
/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/llvm-build/Release+Asserts/archives.txt
-framework Foundation -framework DebugSymbols -framework Security
-framework CoreServices -framework ApplicationServices
/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/llvm-build/Release+Asserts/x86_64/lib/libgtest.a
-L /System/Library/Frameworks/Python.framework/Versions/2.7/lib -l
python2.7 -stdlib=libc++ -lxml2.2 -lpanel -ledit -lz -lncurses
/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/Release/liblldb-core.a
-Xlinker -dependency_info -Xlinker
/Users/buildslave/jenkins/sharedspace/lldb@2/lldb/build/lldb.build/Release/lldb-gtest-build.build/Objects-normal/x86_64/lldb-gtest_dependency_info.dat
-o /Users/buildslave/jenkins/sharedspace/lldb@2
/lldb/build/Release/lldb-gtest
Undefined symbols for architecture x86_64:

"lldb_private::minidump::ConvertMinidumpContextToRegIface(llvm::ArrayRef, lldb_private::RegisterInfoInterface*)", referenced from:
  MinidumpParserTest_ConvertRegisterContext_Test::TestBody() in
MinidumpParserTest.o
ld: symbol(s) not found for architecture x86_64


It first struck yesterday afternoon:

http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20745/console

and recurring through today:

http://lab.llvm.org:8080/green/view/LLDB/job/lldb_build_test/20770/console

Is there a change that needs to be made to the test suite to address this?


On Tue, Sep 27, 2016 at 12:05 PM, Dimitar Vlahovski via lldb-commits <
lldb-commits@lists.llvm.org> wrote:

> Author: dvlahovski
> Date: Tue Sep 27 14:05:55 2016
> New Revision: 282529
>
> URL: http://llvm.org/viewvc/llvm-project?rev=282529=rev
> Log:
> Adding a RegisterContextMinidump_x86_64 converter
>
> Summary:
> This is a register context converter from Minidump to Linux reg context.
> This knows the layout of the register context in the Minidump file
> (which is the same as in Windows FYI) and as a result emits a binary data
> buffer that matches the Linux register context binary layout.
> This way we can reuse the existing RegisterContextLinux_x86_64 and
> RegisterContextCorePOSIX_x86_64 classes.
>
> Reviewers: labath, zturner
>
> Subscribers: beanz, mgorny, lldb-commits, amccarth
>
> Differential Revision: https://reviews.llvm.org/D24919
>
> Added:
> lldb/trunk/source/Plugins/Process/minidump/
> RegisterContextMinidump_x86_64.cpp
> lldb/trunk/source/Plugins/Process/minidump/
> RegisterContextMinidump_x86_64.h
> Modified:
> lldb/trunk/include/lldb/lldb-private-types.h
> lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt
> lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp
> lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
> lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp
>
> Modified: lldb/trunk/include/lldb/lldb-private-types.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/
> lldb/lldb-private-types.h?rev=282529=282528=282529=diff
> 
> ==
> --- lldb/trunk/include/lldb/lldb-private-types.h (original)
> +++ lldb/trunk/include/lldb/lldb-private-types.h Tue Sep 27 14:05:55 2016
> @@ -14,6 +14,8 @@
>
>  #include "lldb/lldb-private.h"
>
> +#include "llvm/ADT/ArrayRef.h"
> +
>  namespace llvm {
>  namespace sys {
>  class DynamicLibrary;
> @@ -61,6 +63,15 @@ struct RegisterInfo {
>// the byte size of this register.
>size_t dynamic_size_dwarf_len; // The length of the DWARF expression in
> bytes
>   // in the dynamic_size_dwarf_expr_bytes
> member.
> +
> +  llvm::ArrayRef data(const uint8_t *context_base) const {
> +return llvm::ArrayRef(context_base + byte_offset,
> byte_size);
> +  }
> +
> +  llvm::MutableArrayRef mutable_data(uint8_t *context_base)
> const {
> +return llvm::MutableArrayRef(context_base + byte_offset,
> +   

[Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter

2016-09-27 Thread Dimitar Vlahovski via lldb-commits
Author: dvlahovski
Date: Tue Sep 27 14:05:55 2016
New Revision: 282529

URL: http://llvm.org/viewvc/llvm-project?rev=282529=rev
Log:
Adding a RegisterContextMinidump_x86_64 converter

Summary:
This is a register context converter from Minidump to Linux reg context.
This knows the layout of the register context in the Minidump file
(which is the same as in Windows FYI) and as a result emits a binary data
buffer that matches the Linux register context binary layout.
This way we can reuse the existing RegisterContextLinux_x86_64 and
RegisterContextCorePOSIX_x86_64 classes.

Reviewers: labath, zturner

Subscribers: beanz, mgorny, lldb-commits, amccarth

Differential Revision: https://reviews.llvm.org/D24919

Added:

lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp
lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h
Modified:
lldb/trunk/include/lldb/lldb-private-types.h
lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt
lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp
lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp

Modified: lldb/trunk/include/lldb/lldb-private-types.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-private-types.h?rev=282529=282528=282529=diff
==
--- lldb/trunk/include/lldb/lldb-private-types.h (original)
+++ lldb/trunk/include/lldb/lldb-private-types.h Tue Sep 27 14:05:55 2016
@@ -14,6 +14,8 @@
 
 #include "lldb/lldb-private.h"
 
+#include "llvm/ADT/ArrayRef.h"
+
 namespace llvm {
 namespace sys {
 class DynamicLibrary;
@@ -61,6 +63,15 @@ struct RegisterInfo {
   // the byte size of this register.
   size_t dynamic_size_dwarf_len; // The length of the DWARF expression in bytes
  // in the dynamic_size_dwarf_expr_bytes 
member.
+
+  llvm::ArrayRef data(const uint8_t *context_base) const {
+return llvm::ArrayRef(context_base + byte_offset, byte_size);
+  }
+
+  llvm::MutableArrayRef mutable_data(uint8_t *context_base) const {
+return llvm::MutableArrayRef(context_base + byte_offset,
+  byte_size);
+  }
 };
 
 //--

Modified: lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt?rev=282529=282528=282529=diff
==
--- lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt (original)
+++ lldb/trunk/source/Plugins/Process/minidump/CMakeLists.txt Tue Sep 27 
14:05:55 2016
@@ -3,4 +3,5 @@ include_directories(../Utility)
 add_lldb_library(lldbPluginProcessMinidump
   MinidumpTypes.cpp
   MinidumpParser.cpp
+  RegisterContextMinidump_x86_64.cpp
   )

Modified: lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp?rev=282529=282528=282529=diff
==
--- lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp (original)
+++ lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpp Tue Sep 27 
14:05:55 2016
@@ -64,8 +64,9 @@ MinidumpParser::MinidumpParser(
 : m_data_sp(data_buf_sp), m_header(header), m_directory_map(directory_map) 
{
 }
 
-lldb::offset_t MinidumpParser::GetByteSize() {
-  return m_data_sp->GetByteSize();
+llvm::ArrayRef MinidumpParser::GetData() {
+  return llvm::ArrayRef(m_data_sp->GetBytes(),
+ m_data_sp->GetByteSize());
 }
 
 llvm::ArrayRef

Modified: lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h?rev=282529=282528=282529=diff
==
--- lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h (original)
+++ lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h Tue Sep 27 
14:05:55 2016
@@ -39,7 +39,7 @@ public:
   static llvm::Optional
   Create(const lldb::DataBufferSP _buf_sp);
 
-  lldb::offset_t GetByteSize();
+  llvm::ArrayRef GetData();
 
   llvm::ArrayRef GetStream(MinidumpStreamType stream_type);
 
@@ -71,6 +71,6 @@ private:
   llvm::DenseMap &_map);
 };
 
-} // namespace minidump
-} // namespace lldb_private
+} // end namespace minidump
+} // end namespace lldb_private
 #endif // liblldb_MinidumpParser_h_

Added: 
lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp?rev=282529=auto