Re: [Lldb-commits] [PATCH] D17856: Fix expression evaluation with operator new
labath requested a review of this revision. labath added a comment. Sean, could you take a quick look at this one as well? http://reviews.llvm.org/D17856 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275164 - Dwarf parser: don't lookup void typedefs in the DWO
Author: labath Date: Tue Jul 12 04:26:30 2016 New Revision: 275164 URL: http://llvm.org/viewvc/llvm-project?rev=275164&view=rev Log: Dwarf parser: don't lookup void typedefs in the DWO Summary: void typedefs do not have a DW_AT_type attribute, so we end up with an empty encoding_uid variable. These don't need to be looked up and trying to look that will assert in a debug build. Reviewers: clayborg Subscribers: lldb-commits, tberghammer Differential Revision: http://reviews.llvm.org/D22218 Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp?rev=275164&r1=275163&r2=275164&view=diff == --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (original) +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Tue Jul 12 04:26:30 2016 @@ -328,7 +328,7 @@ DWARFASTParserClang::ParseTypeFromDWARF } } -if (tag == DW_TAG_typedef) +if (tag == DW_TAG_typedef && encoding_uid.IsValid()) { // Try to parse a typedef from the DWO file first as modules // can contain typedef'ed structures that have no names like: ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22218: Dwarf parser: don't lookup void typedefs in the DWO
This revision was automatically updated to reflect the committed changes. Closed by commit rL275164: Dwarf parser: don't lookup void typedefs in the DWO (authored by labath). Changed prior to commit: http://reviews.llvm.org/D22218?vs=63499&id=63657#toc Repository: rL LLVM http://reviews.llvm.org/D22218 Files: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp === --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -328,7 +328,7 @@ } } -if (tag == DW_TAG_typedef) +if (tag == DW_TAG_typedef && encoding_uid.IsValid()) { // Try to parse a typedef from the DWO file first as modules // can contain typedef'ed structures that have no names like: Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp === --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -328,7 +328,7 @@ } } -if (tag == DW_TAG_typedef) +if (tag == DW_TAG_typedef && encoding_uid.IsValid()) { // Try to parse a typedef from the DWO file first as modules // can contain typedef'ed structures that have no names like: ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275165 - Fix a race on process exit
Author: labath Date: Tue Jul 12 04:37:55 2016 New Revision: 275165 URL: http://llvm.org/viewvc/llvm-project?rev=275165&view=rev Log: Fix a race on process exit Summary: Process::SetExitStatus was popping the process io handler and resetting m_process_input_reader shared pointer, which is not a safe thing to do as the function is called asynchronously and other threads may be accessing the member variable. (E.g. if the process terminates really quickly, the private state thread might only be in the process of pushing the handler on the stack. Sometimes, this leads to deadlock, as the shared pointer's state gets corrupted by the concurrent access. Since the IOHandler will be popped anyway in Process:HandleProcessStateChangedEvent when the exited event gets processed, doing the same in SetExitStatus seems to be unnecessary. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D22209 Modified: lldb/trunk/source/Target/Process.cpp Modified: lldb/trunk/source/Target/Process.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=275165&r1=275164&r2=275165&view=diff == --- lldb/trunk/source/Target/Process.cpp (original) +++ lldb/trunk/source/Target/Process.cpp Tue Jul 12 04:37:55 2016 @@ -1462,14 +1462,6 @@ Process::SetExitStatus (int status, cons else m_exit_string.clear(); -// When we exit, we don't need the input reader anymore -if (m_process_input_reader) -{ -m_process_input_reader->SetIsDone(true); -m_process_input_reader->Cancel(); -m_process_input_reader.reset(); -} - // Clear the last natural stop ID since it has a strong // reference to this process m_mod_id.SetStopEventForLastNaturalStopID(EventSP()); ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22209: Fix a race on process exit
This revision was automatically updated to reflect the committed changes. Closed by commit rL275165: Fix a race on process exit (authored by labath). Changed prior to commit: http://reviews.llvm.org/D22209?vs=63481&id=63659#toc Repository: rL LLVM http://reviews.llvm.org/D22209 Files: lldb/trunk/source/Target/Process.cpp Index: lldb/trunk/source/Target/Process.cpp === --- lldb/trunk/source/Target/Process.cpp +++ lldb/trunk/source/Target/Process.cpp @@ -1462,14 +1462,6 @@ else m_exit_string.clear(); -// When we exit, we don't need the input reader anymore -if (m_process_input_reader) -{ -m_process_input_reader->SetIsDone(true); -m_process_input_reader->Cancel(); -m_process_input_reader.reset(); -} - // Clear the last natural stop ID since it has a strong // reference to this process m_mod_id.SetStopEventForLastNaturalStopID(EventSP()); Index: lldb/trunk/source/Target/Process.cpp === --- lldb/trunk/source/Target/Process.cpp +++ lldb/trunk/source/Target/Process.cpp @@ -1462,14 +1462,6 @@ else m_exit_string.clear(); -// When we exit, we don't need the input reader anymore -if (m_process_input_reader) -{ -m_process_input_reader->SetIsDone(true); -m_process_input_reader->Cancel(); -m_process_input_reader.reset(); -} - // Clear the last natural stop ID since it has a strong // reference to this process m_mod_id.SetStopEventForLastNaturalStopID(EventSP()); ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22219: Support loading files even when incorrect file name specified by the linker
tberghammer updated this revision to Diff 63664. tberghammer added a comment. Add SBMemoryRegionInfo::GetName http://reviews.llvm.org/D22219 Files: docs/lldb-gdb-remote.txt include/lldb/API/SBMemoryRegionInfo.h include/lldb/Target/MemoryRegionInfo.h packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py source/API/SBMemoryRegionInfo.cpp source/Core/DynamicLoader.cpp source/Plugins/Process/Linux/NativeProcessLinux.cpp source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp === --- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp +++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp @@ -2224,6 +2224,15 @@ response.PutChar (';'); } + +// Name +ConstString name = region_info.GetName(); +if (name) +{ +response.PutCString("name:"); +response.PutCStringAsRawHex8(name.AsCString()); +response.PutChar(';'); +} } return SendPacketNoLock(response.GetData(), response.GetSize()); Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp === --- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp @@ -2439,6 +2439,13 @@ region_info.SetMapped(MemoryRegionInfo::eNo); } } +else if (name.compare ("name") == 0) +{ +StringExtractorGDBRemote name_extractor; +name_extractor.GetStringRef().swap(value); +name_extractor.GetHexByteString(value); +region_info.SetName(value.c_str()); +} else if (name.compare ("error") == 0) { StringExtractorGDBRemote name_extractor; Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp === --- source/Plugins/Process/Linux/NativeProcessLinux.cpp +++ source/Plugins/Process/Linux/NativeProcessLinux.cpp @@ -1942,6 +1942,20 @@ else return Error ("unexpected /proc/{pid}/maps exec permission char"); +line_extractor.GetChar(); // Read the private bit +line_extractor.SkipSpaces(); // Skip the separator +line_extractor.GetHexMaxU64(false, 0); // Read the offset +line_extractor.GetHexMaxU64(false, 0); // Read the major device number +line_extractor.GetChar(); // Read the device id separator +line_extractor.GetHexMaxU64(false, 0); // Read the major device number +line_extractor.SkipSpaces(); // Skip the separator +line_extractor.GetU64(0, 10); // Read the inode number + +line_extractor.SkipSpaces(); +const char* name = line_extractor.Peek(); +if (name) +memory_region_info.SetName(name); + return Error (); } Index: source/Core/DynamicLoader.cpp === --- source/Core/DynamicLoader.cpp +++ source/Core/DynamicLoader.cpp @@ -12,13 +12,14 @@ // Other libraries and framework includes // Project includes #include "lldb/lldb-private.h" -#include "lldb/Target/DynamicLoader.h" -#include "lldb/Target/Process.h" -#include "lldb/Target/Target.h" -#include "lldb/Core/PluginManager.h" #include "lldb/Core/Module.h" #include "lldb/Core/ModuleSpec.h" +#include "lldb/Core/PluginManager.h" #include "lldb/Core/Section.h" +#include "lldb/Target/DynamicLoader.h" +#include "lldb/Target/MemoryRegionInfo.h" +#include "lldb/Target/Process.h" +#include "lldb/Target/Target.h" using namespace lldb; using namespace lldb_private; @@ -177,37 +178,67 @@ { Target &target = m_process->GetTarget(); ModuleList &modules = target.GetImages(); +ModuleSpec module_spec (file, target.GetArchitecture()); ModuleSP module_sp; -ModuleSpec module_spec (file, target.GetArchitecture()); if ((module_sp = modules.FindFirstModule (module_spec))) { UpdateLoadedSections(module_sp, link_map_addr, base_addr, base_addr_is_offset); +return module_sp; } -else if ((module_sp = target.GetSharedModule(module_spec))) + +if ((module_sp = target.GetSharedModule(module_spec))) { UpdateLoadedSections(module_sp, link_map_addr, base_addr, base_addr_is_offset); +return module_sp; } -else + +bool check_alternative_file_name = true; +if (base_addr_is_offset) { -if (base_addr_is_offset) +// Try to fetch the load address of the file from the process as we need absolute load +//
Re: [Lldb-commits] [PATCH] D15116: Fix for evaluating a function with an ambiguous symbol
EwanCrawford abandoned this revision. EwanCrawford added a comment. Thanks for getting around to looking at this Sean, i'd forgotten about it. Unfortunately the patch seems to have gone stale as the test case no longer passes. So i'm just going to close the review for now. Repository: rL LLVM http://reviews.llvm.org/D15116 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22213: [test] Fix category-based skipping
tfiala accepted this revision. tfiala added a comment. This revision is now accepted and ready to land. In http://reviews.llvm.org/D22213#480052, @labath wrote: > Btw, I tried to make a unit test for this, but I could not get your meta test > runner to work -- the existing test was failing for me (it was not getting > any events apart from the global "test run started"/"test run finished" > events). Do you have any idea what could be wrong? Hmm no initial thoughts on that yet. What steps specifically did you take? (I'll see if I can repro it over here, it may have gone stale --- although I used it not too long ago.) The change here looks good to me. http://reviews.llvm.org/D22213 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D21152: Hunt for unused memory properly when dealing with processes that can tell us about memory mappings
tfiala added a comment. Looks like this one can be closed out, @spyffe? Repository: rL LLVM http://reviews.llvm.org/D21152 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275173 - [test] Fix category-based skipping
Author: labath Date: Tue Jul 12 10:07:18 2016 New Revision: 275173 URL: http://llvm.org/viewvc/llvm-project?rev=275173&view=rev Log: [test] Fix category-based skipping Summary: LLDBTestResult.hardMarkAsSkipped marked the whole class as skipped when the first class in the test failed the category check. This meant that subsequent tests in the same class did not run even if they were passing the category filter. Fix that. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D22213 Modified: lldb/trunk/packages/Python/lldbsuite/test/test_result.py Modified: lldb/trunk/packages/Python/lldbsuite/test/test_result.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/test_result.py?rev=275173&r1=275172&r2=275173&view=diff == --- lldb/trunk/packages/Python/lldbsuite/test/test_result.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/test_result.py Tue Jul 12 10:07:18 2016 @@ -113,8 +113,6 @@ class LLDBTestResult(unittest2.TextTestR def hardMarkAsSkipped(self,test): getattr(test, test._testMethodName).__func__.__unittest_skip__ = True getattr(test, test._testMethodName).__func__.__unittest_skip_why__ = "test case does not fall in any category of interest for this run" -test.__class__.__unittest_skip__ = True -test.__class__.__unittest_skip_why__ = "test case does not fall in any category of interest for this run" def startTest(self, test): if configuration.shouldSkipBecauseOfCategories(self.getCategoriesForTest(test)): ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22213: [test] Fix category-based skipping
This revision was automatically updated to reflect the committed changes. Closed by commit rL275173: [test] Fix category-based skipping (authored by labath). Changed prior to commit: http://reviews.llvm.org/D22213?vs=63487&id=63679#toc Repository: rL LLVM http://reviews.llvm.org/D22213 Files: lldb/trunk/packages/Python/lldbsuite/test/test_result.py Index: lldb/trunk/packages/Python/lldbsuite/test/test_result.py === --- lldb/trunk/packages/Python/lldbsuite/test/test_result.py +++ lldb/trunk/packages/Python/lldbsuite/test/test_result.py @@ -113,8 +113,6 @@ def hardMarkAsSkipped(self,test): getattr(test, test._testMethodName).__func__.__unittest_skip__ = True getattr(test, test._testMethodName).__func__.__unittest_skip_why__ = "test case does not fall in any category of interest for this run" -test.__class__.__unittest_skip__ = True -test.__class__.__unittest_skip_why__ = "test case does not fall in any category of interest for this run" def startTest(self, test): if configuration.shouldSkipBecauseOfCategories(self.getCategoriesForTest(test)): Index: lldb/trunk/packages/Python/lldbsuite/test/test_result.py === --- lldb/trunk/packages/Python/lldbsuite/test/test_result.py +++ lldb/trunk/packages/Python/lldbsuite/test/test_result.py @@ -113,8 +113,6 @@ def hardMarkAsSkipped(self,test): getattr(test, test._testMethodName).__func__.__unittest_skip__ = True getattr(test, test._testMethodName).__func__.__unittest_skip_why__ = "test case does not fall in any category of interest for this run" -test.__class__.__unittest_skip__ = True -test.__class__.__unittest_skip_why__ = "test case does not fall in any category of interest for this run" def startTest(self, test): if configuration.shouldSkipBecauseOfCategories(self.getCategoriesForTest(test)): ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D21032: Eliminate differences in lldbinline-generated Makefiles and ensure they're regenerated every time
tfiala added a comment. Did this one go in? If so, can we close the review? Thanks! Repository: rL LLVM http://reviews.llvm.org/D21032 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D22266: Add "support" for DW_CFA_GNU_args_size to the unwinder
labath created this revision. labath added a reviewer: jasonmolenda. labath added a subscriber: lldb-commits. This adds the knowledge of the DW_CFA_GNU_args_size instruction to the eh_frame parsing code. Right now it is ignored as I am unsure how is it supposed to be handled, but now we are at least able to parse the rest of the FDE containing this instruction. I also add a fix for a bug which was exposed by this instruction. Namely, a mismatched sequence of remember/restore instructions in the input could cause us to pop an empty stack and crash. Now we just log the error and ignore the offending instruction. http://reviews.llvm.org/D22266 Files: source/Symbol/DWARFCallFrameInfo.cpp Index: source/Symbol/DWARFCallFrameInfo.cpp === --- source/Symbol/DWARFCallFrameInfo.cpp +++ source/Symbol/DWARFCallFrameInfo.cpp @@ -408,6 +408,7 @@ bool DWARFCallFrameInfo::FDEToUnwindPlan (dw_offset_t dwarf_offset, Address startaddr, UnwindPlan& unwind_plan) { +Log *log = GetLogIfAllCategoriesSet(LIBLLDB_LOG_UNWIND); lldb::offset_t offset = dwarf_offset; lldb::offset_t current_entry = offset; @@ -648,13 +649,32 @@ // the stack and place them in the current row. (This operation is // useful for compilers that move epilogue code into the body of a // function.) +if (stack.empty()) +{ +if (log) +log->Printf( +"DWARFCallFrameInfo::%s(dwarf_offset: %" PRIx32 ", startaddr: %" PRIx64 +" encountered DW_CFA_restore_state but state stack is empty. Corrupt unwind info?", +__FUNCTION__, dwarf_offset, startaddr.GetFileAddress()); +break; +} lldb::addr_t offset = row->GetOffset (); row = stack.back (); stack.pop_back (); row->SetOffset (offset); break; } +case DW_CFA_GNU_args_size: // 0x2e +{ +// The DW_CFA_GNU_args_size instruction takes an unsigned LEB128 operand +// representing an argument size. This instruction specifies the total of +// the size of the arguments which have been pushed onto the stack. + +// TODO: Figure out how we should handle this. +m_cfi_data.GetULEB128(&offset); +} + case DW_CFA_val_offset : // 0x14 case DW_CFA_val_offset_sf : // 0x15 default: Index: source/Symbol/DWARFCallFrameInfo.cpp === --- source/Symbol/DWARFCallFrameInfo.cpp +++ source/Symbol/DWARFCallFrameInfo.cpp @@ -408,6 +408,7 @@ bool DWARFCallFrameInfo::FDEToUnwindPlan (dw_offset_t dwarf_offset, Address startaddr, UnwindPlan& unwind_plan) { +Log *log = GetLogIfAllCategoriesSet(LIBLLDB_LOG_UNWIND); lldb::offset_t offset = dwarf_offset; lldb::offset_t current_entry = offset; @@ -648,13 +649,32 @@ // the stack and place them in the current row. (This operation is // useful for compilers that move epilogue code into the body of a // function.) +if (stack.empty()) +{ +if (log) +log->Printf( +"DWARFCallFrameInfo::%s(dwarf_offset: %" PRIx32 ", startaddr: %" PRIx64 +" encountered DW_CFA_restore_state but state stack is empty. Corrupt unwind info?", +__FUNCTION__, dwarf_offset, startaddr.GetFileAddress()); +break; +} lldb::addr_t offset = row->GetOffset (); row = stack.back (); stack.pop_back (); row->SetOffset (offset); break; } +case DW_CFA_GNU_args_size: // 0x2e +{ +// The DW_CFA_GNU_args_size instruction takes an unsigned LEB128 operand +// representing an argument size. This instruction specifies the total of +// the size of the arguments which have been pushed onto the stack. + +// TODO: Figure out how we should handle this. +m_cfi_data.GetULEB128(&offset); +} +
[Lldb-commits] [lldb] r275175 - [NPL] Increase ETXTBSY workaround sleep
Author: labath Date: Tue Jul 12 10:13:11 2016 New Revision: 275175 URL: http://llvm.org/viewvc/llvm-project?rev=275175&view=rev Log: [NPL] Increase ETXTBSY workaround sleep 10ms does not seem to be enough all the time, go to 50. Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp?rev=275175&r1=275174&r2=275175&view=diff == --- lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp (original) +++ lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Tue Jul 12 10:13:11 2016 @@ -569,7 +569,7 @@ NativeProcessLinux::ChildFunc(const Laun // issued, such as when running the test suite. (The file remains open when someone does // an "adb shell" command in the fork() child before it has had a chance to exec.) Since // this state should clear up quickly, wait a while and then give it one more go. -usleep(1); +usleep(5); execve(args.m_argv[0], const_cast(args.m_argv), const_cast(envp)); } ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22213: [test] Fix category-based skipping
labath added a comment. I used the command you mentioned in the original patch: $ python -m unittest discover -s test/src -p 'Test*.py' FF == FAIL: test_with_function_filter (TestCatchInvalidDecorator.TestCatchInvalidDecorator) -- Traceback (most recent call last): File "/usr/local/google/home/labath/ll/lldb/packages/Python/lldbsuite/test_event/test/src/TestCatchInvalidDecorator.py", line 56, in test_with_function_filter "At least one job or test error result should have been returned") AssertionError: At least one job or test error result should have been returned == FAIL: test_with_whole_file (TestCatchInvalidDecorator.TestCatchInvalidDecorator) -- Traceback (most recent call last): File "/usr/local/google/home/labath/ll/lldb/packages/Python/lldbsuite/test_event/test/src/TestCatchInvalidDecorator.py", line 37, in test_with_whole_file "At least one job or test error result should have been returned") AssertionError: At least one job or test error result should have been returned -- Ran 2 tests in 0.149s FAILED (failures=2) I don't remember seeing any changes here so it's quite possible it never worked in the first place, but I have no idea what could be different about my setup. http://reviews.llvm.org/D22213 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22235: Build clang Debug if we build lldb debug.
tfiala added a comment. We have a separate configuration for that build in Xcode - it is called DebugClang. You can build that configuration from the command line with something like: xcodebuild --scheme desktop --configuration DebugClang or clone the "desktop" scheme in Xcode, setting the scheme build option to use the DebugClang configuration instead of the Debug configuration. Generally we don't want to force building a debug llvm/clang by default in the default Debug configuration since it has a noticeable impact on test run time. @clayborg, thoughts on that? http://reviews.llvm.org/D22235 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275185 - Increase "process load" timeout
Author: labath Date: Tue Jul 12 11:06:31 2016 New Revision: 275185 URL: http://llvm.org/viewvc/llvm-project?rev=275185&view=rev Log: Increase "process load" timeout Loading a dynamic library can take quite a long time, since it triggers a number of shared-library-event stops for dependent libraries. This is especially true for remote targets due to communication latency. Increase the default 500ms timeout to account for that. Committing as obvious. Modified: lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp Modified: lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp?rev=275185&r1=275184&r2=275185&view=diff == --- lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp (original) +++ lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp Tue Jul 12 11:06:31 2016 @@ -882,6 +882,7 @@ PlatformPOSIX::EvaluateLibdlExpression(l expr_options.SetIgnoreBreakpoints(true); expr_options.SetExecutionPolicy(eExecutionPolicyAlways); expr_options.SetLanguage(eLanguageTypeC_plus_plus); +expr_options.SetTimeoutUsec(200); // 2 seconds Error expr_error; UserExpression::Evaluate(exe_ctx, ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D20357: [LLDB][MIPS] Fix FPU Size Based on Dynamic FR
clayborg requested changes to this revision. clayborg added a comment. This revision now requires changes to proceed. Many issues. See inlined comments. Comment at: include/lldb/lldb-private-types.h:57-58 @@ -56,1 +56,4 @@ // ax, ah, and al. +const uint8_t *dynamic_size_dwarf_expr_bytes; // A DWARF expression that when evaluated gives + // the byte size of this register. +size_t dynamic_size_dwarf_len; // The length of the DWARF expression in bytes in the If you choose to add these fields to RegisterInfo.h, then you will need to update all macros for that create arrays of RegisterInfo structs to fill in NULL into dynamic_size_dwarf_expr_bytes, and 0 into dynamic_size_dwarf_len. Comment at: source/Plugins/Process/Utility/DynamicRegisterInfo.cpp:298-299 @@ +297,4 @@ +uint8_t dynamic_size = 0; +reg_info_dict->GetValueForKeyAsInteger("dynamic_size_dwarf_len", dynamic_size); +reg_info.dynamic_size_dwarf_len = dynamic_size; + We don't need a key named "dynamic_size_dwarf_len", we just need "dynamic_size_dwarf_expr_bytes". We can fill in "reg_info.dynamic_size_dwarf_len" after decoding the bytes in "dynamic_size_dwarf_expr_bytes". Comment at: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:1639 @@ +1638,3 @@ +{ + response.Printf("dynamic_size_dwarf_len:%" PRIu64 ";",reg_info->dynamic_size_dwarf_len); + response.PutCString("dynamic_size_dwarf_expr_bytes:"); We really don't need a "dynamic_size_dwarf_len" key. Just "dynamic_size_dwarf_expr_bytes" and we can determine the byte size from how many bytes are encoded as hex ASCII chars. Comment at: source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp:96-97 @@ -91,2 +95,4 @@ { -return m_reg_info.GetRegisterInfoAtIndex (reg); +ExecutionContext exe_ctx (CalculateThread()); +const ArchSpec &arch = m_thread.GetProcess()->GetTarget().GetArchitecture(); +RegisterInfo* reg_info = m_reg_info.GetRegisterInfoAtIndex (reg); Put these two statements inside the "if (reg_info->dynamic_size_dwarf_len)" statement Comment at: source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp:99 @@ +98,3 @@ +RegisterInfo* reg_info = m_reg_info.GetRegisterInfoAtIndex (reg); +if(reg_info->dynamic_size_dwarf_len) +{ add space and make sure "reg_info" isn't NULL. ``` if (reg_info && reg_info->dynamic_size_dwarf_len) ``` Comment at: source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp:954-994 @@ -941,2 +953,43 @@ +uint32_t +GDBRemoteDynamicRegisterInfo::UpdateDynamicRegisterSize (ExecutionContext *exe_ctx, + RegisterContext *reg_ctx, + const lldb_private::ArchSpec &arch, + RegisterInfo* reg_info, size_t reg) +{ +// In MIPS, the floating point registers size is depends on FR. +// if SR.26 == 1 then all floating point registers are 64 bits. +// else they are all 32 bits. + +int evaluate_result; +uint8_t opcode_len = reg_info->dynamic_size_dwarf_len; +uint32_t addr_size = arch.GetAddressByteSize (); +uint8_t* opcode_ptr = m_dynamic_reg_size_map[reg].data(); +DataExtractor dwarf_data (opcode_ptr, opcode_len, + arch.GetByteOrder (),addr_size); +ModuleSP opcode_ctx; +DWARFExpression dwarf_expr (opcode_ctx, dwarf_data, nullptr, 0, opcode_len); +Value result; +Error error; +const lldb::offset_t offset = 0; +if(dwarf_expr.Evaluate (exe_ctx, nullptr, nullptr, reg_ctx, opcode_ctx, dwarf_data, nullptr, +offset, opcode_len, eRegisterKindDWARF, nullptr, nullptr, result, &error)) +{ +evaluate_result = result.GetScalar().SInt(-1); +switch (evaluate_result) +{ +case 0: return 4;break; +case 1: return 8;break; +case -1: return reg_info->byte_size; break; +default: assert(false && "Incorrect Dwarf Opcode bytes"); + break; +} +return 0; +} +else +{ +printf("Error executing DwarfExpression::Evaluate %s\n", error.AsCString()); +return reg_info->byte_size; +} +} This should be a function in RegisterContext.h/RegisterContext.cpp and then the first two arguments are not needed. See previous comment for reasons why. Comment at: source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h:50-55 @@ -49,1 +49,8 @@ + +// Detect the register size dynamically. +uint32_t +UpdateDynamicRegisterSize (ExecutionContext *exe_ctx, +
Re: [Lldb-commits] [PATCH] D22235: Build clang Debug if we build lldb debug.
clayborg requested changes to this revision. clayborg added a comment. This revision now requires changes to proceed. As Todd said, we already have a "DebugClang" configuration for this. We should abandon this change. http://reviews.llvm.org/D22235 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22235: Build clang Debug if we build lldb debug.
sas abandoned this revision. sas added a comment. Ah, makes sense, I had missed the `DebugClang` build configuration. Thanks for pointing this out. http://reviews.llvm.org/D22235 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275198 - Add logging to Linux Host::GetProcessAndStatInfo.
Author: ovyalov Date: Tue Jul 12 13:14:27 2016 New Revision: 275198 URL: http://llvm.org/viewvc/llvm-project?rev=275198&view=rev Log: Add logging to Linux Host::GetProcessAndStatInfo. Modified: lldb/trunk/source/Host/linux/Host.cpp Modified: lldb/trunk/source/Host/linux/Host.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/linux/Host.cpp?rev=275198&r1=275197&r2=275198&view=diff == --- lldb/trunk/source/Host/linux/Host.cpp (original) +++ lldb/trunk/source/Host/linux/Host.cpp Tue Jul 12 13:14:27 2016 @@ -8,12 +8,14 @@ //===--===// // C Includes -#include -#include -#include -#include #include +#include #include +#include +#include +#include +#include +#include // C++ Includes // Other libraries and framework includes @@ -291,15 +293,25 @@ GetProcessAndStatInfo (lldb::pid_t pid, ::memset (&stat_info, 0, sizeof(stat_info)); stat_info.ppid = LLDB_INVALID_PROCESS_ID; +Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS)); + // Use special code here because proc/[pid]/exe is a symbolic link. char link_path[PATH_MAX]; char exe_path[PATH_MAX] = ""; if (snprintf (link_path, PATH_MAX, "/proc/%" PRIu64 "/exe", pid) <= 0) +{ +if (log) +log->Printf("%s: failed to sprintf pid %" PRIu64, __FUNCTION__, pid); return false; +} ssize_t len = readlink (link_path, exe_path, sizeof(exe_path) - 1); if (len <= 0) +{ +if (log) +log->Printf("%s: failed to read link %s: %s", __FUNCTION__, link_path, strerror(errno)); return false; +} // readlink does not append a null byte. exe_path[len] = 0; ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275199 - Tweaks to the NSIndexPath formatter to enhance stability
Author: enrico Date: Tue Jul 12 13:33:52 2016 New Revision: 275199 URL: http://llvm.org/viewvc/llvm-project?rev=275199&view=rev Log: Tweaks to the NSIndexPath formatter to enhance stability rdar://problem/25767901 Modified: lldb/trunk/source/Plugins/Language/ObjC/NSIndexPath.cpp Modified: lldb/trunk/source/Plugins/Language/ObjC/NSIndexPath.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSIndexPath.cpp?rev=275199&r1=275198&r2=275199&view=diff == --- lldb/trunk/source/Plugins/Language/ObjC/NSIndexPath.cpp (original) +++ lldb/trunk/source/Plugins/Language/ObjC/NSIndexPath.cpp Tue Jul 12 13:33:52 2016 @@ -31,6 +31,8 @@ class NSIndexPathSyntheticFrontEnd : pub public: NSIndexPathSyntheticFrontEnd (lldb::ValueObjectSP valobj_sp) : SyntheticChildrenFrontEnd (*valobj_sp.get()), +m_descriptor_sp(nullptr), +m_impl(), m_ptr_size(0), m_uint_star_type() { @@ -169,9 +171,8 @@ protected: Invalid }; -struct Impl { -Mode m_mode; - +struct Impl +{ size_t GetNumIndexes () { @@ -200,48 +201,52 @@ protected: return m_outsourced.GetIndexAtIndex (idx); } } - -struct InlinedIndexes { + +struct InlinedIndexes +{ public: - void SetIndexes(uint64_t value, Process& p) - { - m_indexes = value; - _lengthForInlinePayload(p.GetAddressByteSize()); - m_process = &p; - } - - size_t - GetNumIndexes () - { - return m_count; - } - - lldb::ValueObjectSP - GetIndexAtIndex (size_t idx, const CompilerType& desired_type) - { - std::pair value(_indexAtPositionForInlinePayload(idx)); - if (!value.second) - return nullptr; - - Value v; - if (m_ptr_size == 8) - { - Scalar scalar( (unsigned long long)value.first ); - v = Value(scalar); - } - else - { - Scalar scalar( (unsigned int)value.first ); - v = Value(scalar); - } - - v.SetCompilerType(desired_type); - - StreamString idx_name; - idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx); +void SetIndexes(uint64_t value, Process& p) +{ +m_indexes = value; +_lengthForInlinePayload(p.GetAddressByteSize()); +m_process = &p; +} + +size_t +GetNumIndexes () +{ +return m_count; +} + +lldb::ValueObjectSP +GetIndexAtIndex (size_t idx, const CompilerType& desired_type) +{ +if (!m_process) +return nullptr; - return ValueObjectConstResult::Create(m_process, v, ConstString(idx_name.GetData())); - } +std::pair value(_indexAtPositionForInlinePayload(idx)); +if (!value.second) +return nullptr; + +Value v; +if (m_ptr_size == 8) +{ +Scalar scalar( (unsigned long long)value.first ); +v = Value(scalar); +} +else +{ +Scalar scalar( (unsigned int)value.first ); +v = Value(scalar); +} + +v.SetCompilerType(desired_type); + +StreamString idx_name; +idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx); + +return ValueObjectConstResult::Create(m_process, v, ConstString(idx_name.GetData())); +} void Clear () @@ -251,53 +256,60 @@ protected: m_ptr_size = 0; m_process = nullptr; } - + +InlinedIndexes () : +m_indexes(0), +m_count(0), +m_ptr_size(0), +m_process(nullptr) +{ +} + private: - uint64_t m_indexes; - size_t m_count; - uint32_t m_ptr_size; - Process *m_process; - - // cfr. Foundation for the details of this code - size_t _lengthForInlinePayload(uint32_t ptr_size) { - m_ptr_size = ptr_size; - if (m_ptr_size == 8) - m_count = ((m_indexes >> 3) & 0x7); - else - m_count = ((m_indexes >> 3) & 0x3); - return m_count; -
[Lldb-commits] [PATCH] D22278: Fix a check in the objc trampoline handler
sas created this revision. sas added reviewers: jingham, clayborg. sas added a subscriber: lldb-commits. The function FunctionCaller::WriteFunctionArguments returns false on errors, so they should check for the false return value. Change by Walter Erquinigo http://reviews.llvm.org/D22278 Files: source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp Index: source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp === --- source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp +++ source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp @@ -818,7 +818,7 @@ // if other threads were calling into here, but actually it isn't because we allocate a new args structure for // this call by passing args_addr = LLDB_INVALID_ADDRESS... -if (impl_function_caller->WriteFunctionArguments(exe_ctx, args_addr, dispatch_values, diagnostics)) +if (!impl_function_caller->WriteFunctionArguments(exe_ctx, args_addr, dispatch_values, diagnostics)) { if (log) { Index: source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp === --- source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp +++ source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp @@ -818,7 +818,7 @@ // if other threads were calling into here, but actually it isn't because we allocate a new args structure for // this call by passing args_addr = LLDB_INVALID_ADDRESS... -if (impl_function_caller->WriteFunctionArguments(exe_ctx, args_addr, dispatch_values, diagnostics)) +if (!impl_function_caller->WriteFunctionArguments(exe_ctx, args_addr, dispatch_values, diagnostics)) { if (log) { ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275223 - Mark TagDecls as having external visible storage, like ContainerDecls.
Author: spyffe Date: Tue Jul 12 17:42:07 2016 New Revision: 275223 URL: http://llvm.org/viewvc/llvm-project?rev=275223&view=rev Log: Mark TagDecls as having external visible storage, like ContainerDecls. The lookup tables can get out of date during the lifetime of the object so we need to preserve LLDB's ability to answer questions about TagDecls' contents. Modified: lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata Modified: lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata?rev=275223&r1=275222&r2=275223&view=diff == --- lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata (original) +++ lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata Tue Jul 12 17:42:07 2016 @@ -10,4 +10,7 @@ + + ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275225 - This doesn't compiler on Darwin. Skipping it.
Author: gclayton Date: Tue Jul 12 18:06:28 2016 New Revision: 275225 URL: http://llvm.org/viewvc/llvm-project?rev=275225&view=rev Log: This doesn't compiler on Darwin. Skipping it. Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py?rev=275225&r1=275224&r2=275225&view=diff == --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py Tue Jul 12 18:06:28 2016 @@ -15,6 +15,7 @@ class StdSmartPtrDataFormatterTestCase(T @skipIfFreeBSD @skipIfWindows # libstdcpp not ported to Windows +@skipIfDarwin # doesn't compile on Darwin def test_with_run_command(self): self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275226 - Remove assert since it was crashing the mutli process driver tests. Made the code behave correctly when indexes are out of range or the collection is empty and is "log
Author: gclayton Date: Tue Jul 12 18:07:50 2016 New Revision: 275226 URL: http://llvm.org/viewvc/llvm-project?rev=275226&view=rev Log: Remove assert since it was crashing the mutli process driver tests. Made the code behave correctly when indexes are out of range or the collection is empty and is "log enable lldb unwind" is enabled, log an error message. Modified: lldb/trunk/source/Symbol/UnwindPlan.cpp Modified: lldb/trunk/source/Symbol/UnwindPlan.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/UnwindPlan.cpp?rev=275226&r1=275225&r2=275226&view=diff == --- lldb/trunk/source/Symbol/UnwindPlan.cpp (original) +++ lldb/trunk/source/Symbol/UnwindPlan.cpp Tue Jul 12 18:07:50 2016 @@ -385,16 +385,27 @@ UnwindPlan::IsValidRowIndex (uint32_t id const UnwindPlan::RowSP UnwindPlan::GetRowAtIndex (uint32_t idx) const { -// You must call IsValidRowIndex(idx) first before calling this!!! -assert (idx < m_row_list.size()); -return m_row_list[idx]; +if (idx < m_row_list.size()) +return m_row_list[idx]; +else +{ +Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND)); +if (log) +log->Printf ("error: UnwindPlan::GetRowAtIndex(idx = %u) invalid index (number rows is %u)", idx, (uint32_t)m_row_list.size()); +return UnwindPlan::RowSP(); +} } const UnwindPlan::RowSP UnwindPlan::GetLastRow () const { -// You must call GetRowCount() first to make sure there is at least one row -assert (!m_row_list.empty()); +if (m_row_list.empty()) +{ +Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND)); +if (log) +log->Printf ("UnwindPlan::GetLastRow() when rows are empty"); +return UnwindPlan::RowSP(); +} return m_row_list.back(); } ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r275223 - Mark TagDecls as having external visible storage, like ContainerDecls.
Argh, this isn’t what I wanted to commit AT ALL. Sorry folks. I’ll fix this momentarily. Thanks to Jim Ingham for pointing it out. Sean > On Jul 12, 2016, at 3:42 PM, Sean Callanan via lldb-commits > wrote: > > Author: spyffe > Date: Tue Jul 12 17:42:07 2016 > New Revision: 275223 > > URL: http://llvm.org/viewvc/llvm-project?rev=275223&view=rev > Log: > Mark TagDecls as having external visible storage, like ContainerDecls. > > The lookup tables can get out of date during the lifetime of the object so we > need to preserve LLDB's ability to answer questions about TagDecls' contents. > > > > Modified: >lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata > > Modified: lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata?rev=275223&r1=275222&r2=275223&view=diff > == > --- lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata (original) > +++ lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata Tue Jul 12 17:42:07 > 2016 > @@ -10,4 +10,7 @@ > location = "group:tools/lldb-perf/lldbperf.xcodeproj"> > > ++ location = "group:llvm"> > + > > > > ___ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r275237 - Revert r275223, which committed the wrong thing.
Author: spyffe Date: Tue Jul 12 18:31:42 2016 New Revision: 275237 URL: http://llvm.org/viewvc/llvm-project?rev=275237&view=rev Log: Revert r275223, which committed the wrong thing. Modified: lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata Modified: lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata?rev=275237&r1=275236&r2=275237&view=diff == --- lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata (original) +++ lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata Tue Jul 12 18:31:42 2016 @@ -10,7 +10,4 @@ - - ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r275223 - Mark TagDecls as having external visible storage, like ContainerDecls.
Reverted with r275237. Sean > On Jul 12, 2016, at 4:33 PM, Sean Callanan wrote: > > Argh, this isn’t what I wanted to commit AT ALL. > Sorry folks. I’ll fix this momentarily. > Thanks to Jim Ingham for pointing it out. > > Sean > >> On Jul 12, 2016, at 3:42 PM, Sean Callanan via lldb-commits >> wrote: >> >> Author: spyffe >> Date: Tue Jul 12 17:42:07 2016 >> New Revision: 275223 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=275223&view=rev >> Log: >> Mark TagDecls as having external visible storage, like ContainerDecls. >> >> The lookup tables can get out of date during the lifetime of the object so we >> need to preserve LLDB's ability to answer questions about TagDecls' contents. >> >> >> >> Modified: >> lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata >> >> Modified: lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata?rev=275223&r1=275222&r2=275223&view=diff >> == >> --- lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata (original) >> +++ lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata Tue Jul 12 17:42:07 >> 2016 >> @@ -10,4 +10,7 @@ >> > location = "group:tools/lldb-perf/lldbperf.xcodeproj"> >> >> + > + location = "group:llvm"> >> + >> >> >> >> ___ >> lldb-commits mailing list >> lldb-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits > ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D21757: Fix lldb-mi disable/enable breakpoints commands
ChuckR added a subscriber: ki.stfu. ChuckR added a comment. @abidh @ki.stfu Do you have any feedback? We would like to check this in and I want to get more sign off then just me. Repository: rL LLVM http://reviews.llvm.org/D21757 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D22284: [LLDB] Proposed change in multi-line edit behavior (Return = end/append, Meta+Return = line break)
Eugene.Zelenko added a subscriber: Eugene.Zelenko. Comment at: include/lldb/Host/Editline.h:289 @@ +288,3 @@ +unsigned char +EndOrAddLineCommand (int ch); + Will be good idea to not add space between name and arguments list in new code. Same for other places. Repository: rL LLVM http://reviews.llvm.org/D22284 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D22294: Add functionality for rewriting symbols
fjricci created this revision. fjricci added reviewers: clayborg, lattner. fjricci added subscribers: sas, lldb-commits. Herald added a subscriber: kubabrecka. Clang supports symbol rewrites via the -frewrite-map-file flag, this patch adds complementary functionality in lldb. Re-written symbols are required when, for example, two versions of the same library are linked to the same binary, and the user needs to differentiate the symbols. The SymbolRewriter implemented in this patch will use a rewrite map provided via the 'target symbols rewrite' command to lookup the original symbol names instead of the names re-written by clang. http://reviews.llvm.org/D22294 Files: include/lldb/Core/Module.h include/lldb/Core/ModuleList.h include/lldb/Symbol/SymbolRewriter.h include/lldb/Symbol/Symtab.h include/lldb/Target/Target.h include/lldb/lldb-forward.h lldb.xcodeproj/project.pbxproj packages/Python/lldbsuite/test/lang/c/symbol_rewriter/Makefile packages/Python/lldbsuite/test/lang/c/symbol_rewriter/TestSymbolRewriter.py packages/Python/lldbsuite/test/lang/c/symbol_rewriter/main.c packages/Python/lldbsuite/test/lang/c/symbol_rewriter/rewrite.map source/API/SBModule.cpp source/API/SBTarget.cpp source/Breakpoint/BreakpointResolverName.cpp source/Commands/CommandObjectSource.cpp source/Commands/CommandObjectTarget.cpp source/Core/AddressResolverName.cpp source/Core/Disassembler.cpp source/Core/Module.cpp source/Core/ModuleList.cpp source/Core/SourceManager.cpp source/Expression/IRExecutionUnit.cpp source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp source/Plugins/Process/Utility/InferiorCallPOSIX.cpp source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp source/Symbol/CMakeLists.txt source/Symbol/Symbol.cpp source/Symbol/SymbolRewriter.cpp source/Symbol/Symtab.cpp source/Target/ObjCLanguageRuntime.cpp source/Target/Target.cpp Index: source/Target/Target.cpp === --- source/Target/Target.cpp +++ source/Target/Target.cpp @@ -78,6 +78,7 @@ m_mutex(), m_arch(target_arch), m_images(this), + m_symbol_rewriter(), m_section_load_history(), m_breakpoint_list(false), m_internal_breakpoint_list(true), Index: source/Target/ObjCLanguageRuntime.cpp === --- source/Target/ObjCLanguageRuntime.cpp +++ source/Target/ObjCLanguageRuntime.cpp @@ -105,6 +105,7 @@ SymbolContextList sc_list; const size_t matching_symbols = modules.FindSymbolsWithNameAndType (name, +m_process->GetTarget().GetSymbolRewriter(), eSymbolTypeObjCClass, sc_list); Index: source/Symbol/Symtab.cpp === --- source/Symbol/Symtab.cpp +++ source/Symbol/Symtab.cpp @@ -18,6 +18,7 @@ #include "lldb/Symbol/ObjectFile.h" #include "lldb/Symbol/Symbol.h" #include "lldb/Symbol/SymbolContext.h" +#include "lldb/Symbol/SymbolRewriter.h" #include "lldb/Symbol/Symtab.h" #include "Plugins/Language/ObjC/ObjCLanguage.h" #include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" @@ -806,11 +807,14 @@ } size_t -Symtab::FindAllSymbolsWithNameAndType (const ConstString &name, SymbolType symbol_type, std::vector& symbol_indexes) +Symtab::FindAllSymbolsWithNameAn
Re: [Lldb-commits] [PATCH] D22266: Add "support" for DW_CFA_GNU_args_size to the unwinder
jasonmolenda accepted this revision. jasonmolenda added a comment. This revision is now accepted and ready to land. This is fine - is there a binary using this? I'd love to see the assembly code and a dump of the eh_frame CFI. I googled around and didn't find much about DW_CFA_GNU_args_size but in the libunwind llvm sources (v. https://llvm.org/svn/llvm-project/libunwind/trunk/src/ ) it takes the uleb value and adjusts the stack pointer by that value?? I don't see why that wouldn't be encoded in the normal "CFA is sp + offset" type rule of eh_frame so it must not be quite that simple. lldb will probably unwind incorrectly if code built frameless (not using a frame pointer register) is encountered. http://reviews.llvm.org/D22266 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits