Re: [Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter
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&view=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&r1=282528&r2=282529&view=diff >>> >>> == >>> --- lldb/trunk/include/lldb/lldb-private-types.h (original) >>> +
Re: [Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter
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&view=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&r1=282528&r2=282529&view=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 DWAR
Re: [Lldb-commits] [lldb] r282529 - Adding a RegisterContextMinidump_x86_64 converter
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&view=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&r1=282528&r2=282529&view=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
Author: dvlahovski Date: Tue Sep 27 14:05:55 2016 New Revision: 282529 URL: http://llvm.org/viewvc/llvm-project?rev=282529&view=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&r1=282528&r2=282529&view=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&r1=282528&r2=282529&view=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&r1=282528&r2=282529&view=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&r1=282528&r2=282529&view=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 &data_buf_sp); - lldb::offset_t GetByteSize(); + llvm::ArrayRef GetData(); llvm::ArrayRef GetStream(MinidumpStreamType stream_type); @@ -71,6 +71,6 @@ private: llvm::DenseMap &&directory_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_x