[Lldb-commits] [lldb] r291889 - Fix log typo in ABISysV_arm64.cpp
Author: omjavaid Date: Fri Jan 13 03:06:58 2017 New Revision: 291889 URL: http://llvm.org/viewvc/llvm-project?rev=291889&view=rev Log: Fix log typo in ABISysV_arm64.cpp This commit fixes a typo in ABISysV_arm64.cpp. Log was reporting a call to ABISysV_x86_64::PrepareTrivialCall. Modified: lldb/trunk/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp Modified: lldb/trunk/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp?rev=291889&r1=291888&r2=291889&view=diff == --- lldb/trunk/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp (original) +++ lldb/trunk/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp Fri Jan 13 03:06:58 2017 @@ -1697,7 +1697,7 @@ bool ABISysV_arm64::PrepareTrivialCall(T if (log) { StreamString s; -s.Printf("ABISysV_x86_64::PrepareTrivialCall (tid = 0x%" PRIx64 +s.Printf("ABISysV_arm64::PrepareTrivialCall (tid = 0x%" PRIx64 ", sp = 0x%" PRIx64 ", func_addr = 0x%" PRIx64 ", return_addr = 0x%" PRIx64, thread.GetID(), (uint64_t)sp, (uint64_t)func_addr, ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D28666: Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5
omjavaid created this revision. omjavaid added reviewers: tfiala, labath. omjavaid added a subscriber: lldb-commits. Herald added subscribers: rengolin, aemerson. TestRegisterVariables fails with https://reviews.llvm.org/owners/package/1/ level when using gcc version 5.0 or above on arm/arm64 linux targets. The reason is injection of buffer overflow protection code at O level 1. This patch turns off buffer overflow protection code by turning off FORTIFY_SOURCE. Can we commit this if nothing goes wrong on any other target. ? https://reviews.llvm.org/D28666 Files: packages/Python/lldbsuite/test/lang/c/register_variables/Makefile Index: packages/Python/lldbsuite/test/lang/c/register_variables/Makefile === --- packages/Python/lldbsuite/test/lang/c/register_variables/Makefile +++ packages/Python/lldbsuite/test/lang/c/register_variables/Makefile @@ -2,6 +2,6 @@ C_SOURCES := test.c -CFLAGS_EXTRAS += -O1 +CFLAGS_EXTRAS += -O1 -D_FORTIFY_SOURCE=0 include $(LEVEL)/Makefile.rules Index: packages/Python/lldbsuite/test/lang/c/register_variables/Makefile === --- packages/Python/lldbsuite/test/lang/c/register_variables/Makefile +++ packages/Python/lldbsuite/test/lang/c/register_variables/Makefile @@ -2,6 +2,6 @@ C_SOURCES := test.c -CFLAGS_EXTRAS += -O1 +CFLAGS_EXTRAS += -O1 -D_FORTIFY_SOURCE=0 include $(LEVEL)/Makefile.rules ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D28666: Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5
labath accepted this revision. labath added a comment. This revision is now accepted and ready to land. Seems reasonable. Maybe add a comment explaining why is that macro defined. This test is incredibly brittle. I think we should find a better way to test the feature, but I don't really have a good idea so far... https://reviews.llvm.org/D28666 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r291895 - Remove a couple of Stream flags
Author: labath Date: Fri Jan 13 04:41:59 2017 New Revision: 291895 URL: http://llvm.org/viewvc/llvm-project?rev=291895&view=rev Log: Remove a couple of Stream flags Summary: I came across this while trying to understand what Log::Debug does. It turns out it does not do anything, as there is no instance of someone setting a debug flag on a stream. The same is true for the Verbose and AddPrefix flags. Removing these will enable some cleanups in the Logging class, and it brings us closer towards the long term goal of standardizing on llvm stream classes. I have removed these flags and all code the code which tested for their presence -- there wasn't much of it, mostly in SymbolFileDWARF, which is probably going away at some point anyway. The eBinary flag still has some users, so I am letting it life for the time being. Reviewers: clayborg, zturner Subscribers: aprantl, beanz, lldb-commits Differential Revision: https://reviews.llvm.org/D28616 Modified: lldb/trunk/include/lldb/Core/Stream.h lldb/trunk/source/Core/Log.cpp lldb/trunk/source/Core/SearchFilter.cpp lldb/trunk/source/Core/Stream.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Symbol/Declaration.cpp Modified: lldb/trunk/include/lldb/Core/Stream.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Stream.h?rev=291895&r1=291894&r2=291895&view=diff == --- lldb/trunk/include/lldb/Core/Stream.h (original) +++ lldb/trunk/include/lldb/Core/Stream.h Fri Jan 13 04:41:59 2017 @@ -33,11 +33,7 @@ public: /// \a m_flags bit values. //-- enum { -eVerbose = (1 << 0), ///< If set, verbose logging is enabled -eDebug = (1 << 1), ///< If set, debug logging is enabled -eAddPrefix = (1 << 2), ///< Add number prefixes for binary, octal and hex - ///when eBinary is clear -eBinary = (1 << 3) ///< Get and put data as binary instead of as the default +eBinary = (1 << 0) ///< Get and put data as binary instead of as the default ///string mode. }; @@ -385,15 +381,6 @@ public: uint32_t GetAddressByteSize() const; //-- - /// Test if debug logging is enabled. - /// - /// @return - // \b true if the debug flag bit is set in this stream, \b - // false otherwise. - //-- - bool GetDebug() const; - - //-- /// The flags accessor. /// /// @return @@ -426,15 +413,6 @@ public: int GetIndentLevel() const; //-- - /// Test if verbose logging is enabled. - /// - /// @return - // \b true if the verbose flag bit is set in this stream, \b - // false otherwise. - //-- - bool GetVerbose() const; - - //-- /// Indent the current line in the stream. /// /// Indent the current line using the current indentation level and Modified: lldb/trunk/source/Core/Log.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Log.cpp?rev=291895&r1=291894&r2=291895&view=diff == --- lldb/trunk/source/Core/Log.cpp (original) +++ lldb/trunk/source/Core/Log.cpp Fri Jan 13 04:41:59 2017 @@ -343,28 +343,13 @@ void Log::ListAllLogChannels(Stream *str } } -bool Log::GetVerbose() const { - // FIXME: This has to be centralized between the stream and the log... - if (m_options.Test(LLDB_LOG_OPTION_VERBOSE)) -return true; - - // Make a copy of our stream shared pointer in case someone disables our - // log while we are logging and releases the stream - StreamSP stream_sp(m_stream_sp); - if (stream_sp) -return stream_sp->GetVerbose(); - return false; -} +bool Log::GetVerbose() const { return m_options.Test(LLDB_LOG_OPTION_VERBOSE); } //-- // Returns true if the debug flag bit is set in this stream. //-- bool Log::GetDebug() const { - // Make a copy of our stream shared pointer in case someone disables our - // log while we are logging and releases the stream - StreamSP stream_sp(m_stream_sp); - if (stream_sp) -return stream_sp->GetDebug(); + // TODO: r
[Lldb-commits] [PATCH] D28616: Remove a couple of Stream flags
This revision was automatically updated to reflect the committed changes. Closed by commit rL291895: Remove a couple of Stream flags (authored by labath). Changed prior to commit: https://reviews.llvm.org/D28616?vs=84143&id=84267#toc Repository: rL LLVM https://reviews.llvm.org/D28616 Files: lldb/trunk/include/lldb/Core/Stream.h lldb/trunk/source/Core/Log.cpp lldb/trunk/source/Core/SearchFilter.cpp lldb/trunk/source/Core/Stream.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Symbol/Declaration.cpp Index: lldb/trunk/source/Symbol/Declaration.cpp === --- lldb/trunk/source/Symbol/Declaration.cpp +++ lldb/trunk/source/Symbol/Declaration.cpp @@ -42,7 +42,7 @@ bool Declaration::DumpStopContext(Stream *s, bool show_fullpaths) const { if (m_file) { -if (show_fullpaths || s->GetVerbose()) +if (show_fullpaths) *s << m_file; else m_file.GetFilename().Dump(s); Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp === --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp @@ -430,10 +430,6 @@ } else { // See if the DIE is in this compile unit? if (cu && dumpInfo->die_offset < cu->GetNextCompileUnitOffset()) { - // This DIE is in this compile unit! - if (s->GetVerbose()) -cu->Dump(s); // Dump the compile unit for the DIE in verbose mode - return next_offset; // // We found our compile unit that contains our DIE, just skip to // dumping the requested DIE... Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp === --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp @@ -324,11 +324,8 @@ bool abbr_offset_OK = m_dwarf2Data->get_debug_abbrev_data().ValidOffset(GetAbbrevOffset()); bool addr_size_OK = ((m_addr_size == 4) || (m_addr_size == 8)); - bool verbose = s->GetVerbose(); if (valid_offset && length_OK && version_OK && addr_size_OK && abbr_offset_OK) { -if (verbose) - s->Printf("0x%8.8x: OK\n", m_offset); return true; } else { s->Printf("0x%8.8x: ", m_offset); Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp === --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp @@ -406,8 +406,6 @@ uint64_t uvalue = Unsigned(); bool cu_relative_offset = false; - bool verbose = s.GetVerbose(); - switch (m_form) { case DW_FORM_addr: s.Address(uvalue, sizeof(uint64_t)); @@ -476,8 +474,6 @@ case DW_FORM_strp: { const char *dbg_str = AsCString(); if (dbg_str) { - if (verbose) -s.Printf(" .debug_str[0x%8.8x] = ", (uint32_t)uvalue); s.QuotedCString(dbg_str); } else { s.PutHex32(uvalue); @@ -496,28 +492,18 @@ } case DW_FORM_ref1: cu_relative_offset = true; -if (verbose) - s.Printf("cu + 0x%2.2x", (uint8_t)uvalue); break; case DW_FORM_ref2: cu_relative_offset = true; -if (verbose) - s.Printf("cu + 0x%4.4x", (uint16_t)uvalue); break; case DW_FORM_ref4: cu_relative_offset = true; -if (verbose) - s.Printf("cu + 0x%4.4x", (uint32_t)uvalue); break; case DW_FORM_ref8: cu_relative_offset = true; -if (verbose) - s.Printf("cu + 0x%8.8" PRIx64, uvalue); break; case DW_FORM_ref_udata: cu_relative_offset = true; -if (verbose) - s.Printf("cu + 0x%" PRIx64, uvalue); break; // All DW_FORM_indirect attributes should be resolved prior to calling this @@ -535,9 +521,6 @@ if (cu_relative_offset) { assert(m_cu); // CU must be valid for DW_FORM_ref forms that are compile // unit relative or we will get this wrong -if (verbose) - s.PutCString(" => "); - s.Printf("{0x%8.8" PRIx64 "}", uvalue + m_cu->GetOffset()); } } Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp === --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp @@ -82,7 +82,6 @@ lldb::offset_t *offset_ptr, dw_addr_t cu_base_addr) {
[Lldb-commits] [PATCH] D28677: FileSpec: Fix PrependPathComponent("/")
labath created this revision. labath added reviewers: clayborg, zturner. labath added a subscriber: lldb-commits. PrependPathComponent was unconditionally inserting path separators between the path components. This is not correct if the prepended path is "/", which caused problems down the line. Fix the function to use the same algorithm as AppendPathComponent and add a test. This fixes one part of llvm.org/pr31611. https://reviews.llvm.org/D28677 Files: source/Host/common/FileSpec.cpp unittests/Host/FileSpecTest.cpp Index: unittests/Host/FileSpecTest.cpp === --- unittests/Host/FileSpecTest.cpp +++ unittests/Host/FileSpecTest.cpp @@ -109,6 +109,28 @@ EXPECT_STREQ("bar", fs.GetFilename().GetCString()); } +TEST(FileSpecTest, PrependPathComponent) { + FileSpec fs_posix("foo", false, FileSpec::ePathSyntaxPosix); + fs_posix.PrependPathComponent("/bar"); + EXPECT_STREQ("/bar/foo", fs_posix.GetCString()); + + FileSpec fs_posix_2("foo/bar", false, FileSpec::ePathSyntaxPosix); + fs_posix_2.PrependPathComponent("/baz"); + EXPECT_STREQ("/baz/foo/bar", fs_posix_2.GetCString()); + + FileSpec fs_windows("baz", false, FileSpec::ePathSyntaxWindows); + fs_windows.PrependPathComponent("F:\\bar"); + EXPECT_STREQ("F:\\bar\\baz", fs_windows.GetCString()); + + FileSpec fs_posix_root("bar", false, FileSpec::ePathSyntaxPosix); + fs_posix_root.PrependPathComponent("/"); + EXPECT_STREQ("/bar", fs_posix_root.GetCString()); + + FileSpec fs_windows_root("bar", false, FileSpec::ePathSyntaxWindows); + fs_windows_root.PrependPathComponent("F:\\"); + EXPECT_STREQ("F:\\bar", fs_windows_root.GetCString()); +} + static void Compare(const FileSpec &one, const FileSpec &two, bool full_match, bool remove_backup_dots, bool result) { EXPECT_EQ(result, FileSpec::Equal(one, two, full_match, remove_backup_dots)) @@ -283,4 +305,4 @@ EXPECT_EQ("foo", llvm::formatv("{0}", F).str()); EXPECT_EQ("foo", llvm::formatv("{0:F}", F).str()); EXPECT_EQ("(empty)", llvm::formatv("{0:D}", F).str()); -} \ No newline at end of file +} Index: source/Host/common/FileSpec.cpp === --- source/Host/common/FileSpec.cpp +++ source/Host/common/FileSpec.cpp @@ -1248,6 +1248,22 @@ return ConstString(); } +static std::string +join_path_components(FileSpec::PathSyntax syntax, + const std::vector components) { + std::string result; + for (size_t i = 0; i < components.size(); ++i) { +if (components[i].empty()) + continue; +result += components[i]; +if (i != components.size() - 1 && +!IsPathSeparator(components[i].back(), syntax)) + result += GetPreferredPathSeparator(syntax); + } + + return result; +} + void FileSpec::PrependPathComponent(llvm::StringRef component) { if (component.empty()) return; @@ -1258,16 +1274,9 @@ return; } - char sep = GetPreferredPathSeparator(m_syntax); - std::string result; - if (m_filename.IsEmpty()) -result = llvm::join_items(sep, component, m_directory.GetStringRef()); - else if (m_directory.IsEmpty()) -result = llvm::join_items(sep, component, m_filename.GetStringRef()); - else -result = llvm::join_items(sep, component, m_directory.GetStringRef(), - m_filename.GetStringRef()); - + std::string result = + join_path_components(m_syntax, {component, m_directory.GetStringRef(), + m_filename.GetStringRef()}); SetFile(result, resolve); } @@ -1279,23 +1288,12 @@ if (component.empty()) return; - std::string result; - if (!m_directory.IsEmpty()) { -result += m_directory.GetStringRef(); -if (!IsPathSeparator(m_directory.GetStringRef().back(), m_syntax)) - result += GetPreferredPathSeparator(m_syntax); - } - - if (!m_filename.IsEmpty()) { -result += m_filename.GetStringRef(); -if (!IsPathSeparator(m_filename.GetStringRef().back(), m_syntax)) - result += GetPreferredPathSeparator(m_syntax); - } - component = component.drop_while( [this](char c) { return IsPathSeparator(c, m_syntax); }); - result += component; + std::string result = + join_path_components(m_syntax, {m_directory.GetStringRef(), + m_filename.GetStringRef(), component}); SetFile(result, false, m_syntax); } ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D28666: Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5
LGTM. Jim and I also thought this test was incredibly brittle. You really want assembly or something that guarantees that variables will be in registers. On Fri, Jan 13, 2017 at 1:43 AM Pavel Labath via Phabricator < revi...@reviews.llvm.org> wrote: > labath accepted this revision. > > labath added a comme > > This revision is now accepted and ready to land. > > > > Seems reasonable. Maybe add a comment explaining why is that macro defined. > > > > This test is incredibly brittle. I think we should find a better way to > test the feature, but I don't really have a good idea so far... > > > > > > https://reviews.llvm.org/D28666 > > > > > > > > ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D25756: FreeBSD ARM support for software single step.
dmikulin added a comment. @emaste , any chance to get this committed soon? Repository: rL LLVM https://reviews.llvm.org/D25756 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D28666: Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5
This revision was automatically updated to reflect the committed changes. Closed by commit rL291949: Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5 (authored by omjavaid). Changed prior to commit: https://reviews.llvm.org/D28666?vs=84257&id=84342#toc Repository: rL LLVM https://reviews.llvm.org/D28666 Files: lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile Index: lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile === --- lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile +++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile @@ -2,6 +2,6 @@ C_SOURCES := test.c -CFLAGS_EXTRAS += -O1 +CFLAGS_EXTRAS += -O1 -D_FORTIFY_SOURCE=0 include $(LEVEL)/Makefile.rules Index: lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile === --- lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile +++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile @@ -2,6 +2,6 @@ C_SOURCES := test.c -CFLAGS_EXTRAS += -O1 +CFLAGS_EXTRAS += -O1 -D_FORTIFY_SOURCE=0 include $(LEVEL)/Makefile.rules ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r291949 - Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5
Author: omjavaid Date: Fri Jan 13 13:28:42 2017 New Revision: 291949 URL: http://llvm.org/viewvc/llvm-project?rev=291949&view=rev Log: Fix TestRegisterVariables for linux arm/arm64 gcc ver > 5 We are going to turn off buffer overflow introduced by gcc by turning off FORTIFY_SOURCE. Differential revision: https://reviews.llvm.org/D28666 Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile?rev=291949&r1=291948&r2=291949&view=diff == --- lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile (original) +++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile Fri Jan 13 13:28:42 2017 @@ -2,6 +2,6 @@ LEVEL = ../../../make C_SOURCES := test.c -CFLAGS_EXTRAS += -O1 +CFLAGS_EXTRAS += -O1 -D_FORTIFY_SOURCE=0 include $(LEVEL)/Makefile.rules ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits