Re: [Lldb-commits] [PATCH] D23802: gdb-remote: Make the sequence mutex non-recursive

2016-08-24 Thread Pavel Labath via lldb-commits
labath updated this revision to Diff 69088.
labath added a comment.

Sounds good. I like that this enables us to get rid of the NoLock suffix.

Maybe eventually we could event replace the runtime assert with some sort of a 
static lock
discipline checking framework, where you annotate functions with what locks it 
expects (I have no
experience with it, but I understand clang supports something like that).

The IsAcquired function is already present in the form of the explicit operator 
bool (I just needed to make it const).


https://reviews.llvm.org/D23802

Files:
  source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
  source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h
  source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp

Index: unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
===
--- unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
+++ unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
@@ -76,17 +76,22 @@
 if (HasFailure())
 return;
 
+std::future suffix_result = std::async(std::launch::async, [&] { client.ComputeThreadSuffixSupport(); });
+Handle_QThreadSuffixSupported(server, true);
+suffix_result.get();
+
+GDBRemoteCommunicationClient::Lock lock(client, false);
+ASSERT_TRUE(bool(lock));
+
 const lldb::tid_t tid = 0x47;
 const uint32_t reg_num = 4;
 std::future write_result =
-std::async(std::launch::async, [&] { return client.WriteRegister(tid, reg_num, one_register); });
-
-Handle_QThreadSuffixSupported(server, true);
+std::async(std::launch::async, [&] { return client.WriteRegister(tid, reg_num, one_register, lock); });
 
 HandlePacket(server, "P4=" + one_register_hex + ";thread:0047;", "OK");
 ASSERT_TRUE(write_result.get());
 
-write_result = std::async(std::launch::async, [&] { return client.WriteAllRegisters(tid, all_registers); });
+write_result = std::async(std::launch::async, [&] { return client.WriteAllRegisters(tid, all_registers, lock); });
 
 HandlePacket(server, "G" + all_registers_hex + ";thread:0047;", "OK");
 ASSERT_TRUE(write_result.get());
@@ -100,17 +105,23 @@
 if (HasFailure())
 return;
 
+std::future suffix_result = std::async(std::launch::async, [&] { client.ComputeThreadSuffixSupport(); });
+Handle_QThreadSuffixSupported(server, false);
+suffix_result.get();
+
+GDBRemoteCommunicationClient::Lock lock(client, false);
+ASSERT_TRUE(bool(lock));
+
 const lldb::tid_t tid = 0x47;
 const uint32_t reg_num = 4;
 std::future write_result =
-std::async(std::launch::async, [&] { return client.WriteRegister(tid, reg_num, one_register); });
+std::async(std::launch::async, [&] { return client.WriteRegister(tid, reg_num, one_register, lock); });
 
-Handle_QThreadSuffixSupported(server, false);
 HandlePacket(server, "Hg47", "OK");
 HandlePacket(server, "P4=" + one_register_hex, "OK");
 ASSERT_TRUE(write_result.get());
 
-write_result = std::async(std::launch::async, [&] { return client.WriteAllRegisters(tid, all_registers); });
+write_result = std::async(std::launch::async, [&] { return client.WriteAllRegisters(tid, all_registers, lock); });
 
 HandlePacket(server, "G" + all_registers_hex, "OK");
 ASSERT_TRUE(write_result.get());
@@ -124,21 +135,27 @@
 if (HasFailure())
 return;
 
+std::future suffix_result = std::async(std::launch::async, [&] { client.ComputeThreadSuffixSupport(); });
+Handle_QThreadSuffixSupported(server, true);
+suffix_result.get();
+
 const lldb::tid_t tid = 0x47;
 const uint32_t reg_num = 4;
 std::future async_result = std::async(std::launch::async, [&] { return client.GetpPacketSupported(tid); });
-Handle_QThreadSuffixSupported(server, true);
 HandlePacket(server, "p0;thread:0047;", one_register_hex);
 ASSERT_TRUE(async_result.get());
 
+GDBRemoteCommunicationClient::Lock lock(client, false);
+ASSERT_TRUE(bool(lock));
+
 std::future read_result =
-std::async(std::launch::async, [&] { return client.ReadRegister(tid, reg_num); });
+std::async(std::launch::async, [&] { return client.ReadRegister(tid, reg_num, lock); });
 HandlePacket(server, "p4;thread:0047;", "41424344");
 auto buffer_sp = read_result.get();
 ASSERT_TRUE(bool(buffer_sp));
 ASSERT_EQ(0, memcmp(buffer_sp->GetBytes(), one_register, sizeof one_register));
 
-read_result = std::async(std::launch::async, [&] { return client.ReadAllRegisters(tid); });
+read_result = std::async(std::launch

[Lldb-commits] [PATCH] D23830: Add cmake option to choose whether to use the builtin demangler

2016-08-24 Thread Pavel Labath via lldb-commits
labath created this revision.
labath added reviewers: zturner, emaste, krytarowski.
labath added subscribers: lldb-commits, clayborg.
Herald added a subscriber: emaste.

Previously the builting demangler was on for platforms that explicitly set a 
flag by modifying
Mangled.cpp (windows, freebsd). The Xcode build always used builtin demangler 
by passing a
compiler flag. This adds a cmake flag (defaulting to ON) to configure the 
demangling library used
at build time. The flag is only available on non-windows platforms as there the 
system demangler
is not present (in the form we're trying to use it, at least).
The impact of this change is:
- linux: switches to the builtin demangler
- freebsd, windows: NFC (I hope)
- netbsd: switches to the builtin demangler
- osx cmake build: switches to the builtin demangler (matching the XCode build)

The main motivation for this is the cross-platform case, where it should bring 
more consistency
by removing the dependency on the host demangler (which can be completely 
unrelated to the debug
target).

https://reviews.llvm.org/D23830

Files:
  cmake/modules/LLDBConfig.cmake
  source/Core/Mangled.cpp

Index: source/Core/Mangled.cpp
===
--- source/Core/Mangled.cpp
+++ source/Core/Mangled.cpp
@@ -14,20 +14,15 @@
 #include "lldb/Host/windows/windows.h"
 #include 
 #pragma comment(lib, "dbghelp.lib")
-#define LLDB_USE_BUILTIN_DEMANGLER
-#elif defined (__FreeBSD__)
-#define LLDB_USE_BUILTIN_DEMANGLER
-#else
-#include 
 #endif
 
 #ifdef LLDB_USE_BUILTIN_DEMANGLER
-
 // Provide a fast-path demangler implemented in FastDemangle.cpp until it can
 // replace the existing C++ demangler with a complete implementation
 #include "lldb/Core/FastDemangle.h"
 #include "lldb/Core/CxaDemangle.h"
-
+#else
+#include 
 #endif
 
 
Index: cmake/modules/LLDBConfig.cmake
===
--- cmake/modules/LLDBConfig.cmake
+++ cmake/modules/LLDBConfig.cmake
@@ -401,3 +401,12 @@
 "- ignore this warning and accept occasional instability")
 endif()
 endif()
+
+if(MSVC)
+set(LLDB_USE_BUILTIN_DEMANGLER ON)
+else()
+option(LLDB_USE_BUILTIN_DEMANGLER "Use lldb's builtin demangler instead of 
the system one" ON)
+endif()
+if(LLDB_USE_BUILTIN_DEMANGLER)
+add_definitions(-DLLDB_USE_BUILTIN_DEMANGLER)
+endif()


Index: source/Core/Mangled.cpp
===
--- source/Core/Mangled.cpp
+++ source/Core/Mangled.cpp
@@ -14,20 +14,15 @@
 #include "lldb/Host/windows/windows.h"
 #include 
 #pragma comment(lib, "dbghelp.lib")
-#define LLDB_USE_BUILTIN_DEMANGLER
-#elif defined (__FreeBSD__)
-#define LLDB_USE_BUILTIN_DEMANGLER
-#else
-#include 
 #endif
 
 #ifdef LLDB_USE_BUILTIN_DEMANGLER
-
 // Provide a fast-path demangler implemented in FastDemangle.cpp until it can
 // replace the existing C++ demangler with a complete implementation
 #include "lldb/Core/FastDemangle.h"
 #include "lldb/Core/CxaDemangle.h"
-
+#else
+#include 
 #endif
 
 
Index: cmake/modules/LLDBConfig.cmake
===
--- cmake/modules/LLDBConfig.cmake
+++ cmake/modules/LLDBConfig.cmake
@@ -401,3 +401,12 @@
 "- ignore this warning and accept occasional instability")
 endif()
 endif()
+
+if(MSVC)
+set(LLDB_USE_BUILTIN_DEMANGLER ON)
+else()
+option(LLDB_USE_BUILTIN_DEMANGLER "Use lldb's builtin demangler instead of the system one" ON)
+endif()
+if(LLDB_USE_BUILTIN_DEMANGLER)
+add_definitions(-DLLDB_USE_BUILTIN_DEMANGLER)
+endif()
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D23830: Add cmake option to choose whether to use the builtin demangler

2016-08-24 Thread Pavel Labath via lldb-commits
labath added a comment.

@krytarowski: I thought I'd switch netbsd as well, as all the other platforms 
are doing it already. However, if you want to stick with the system demangler 
by default, I can easily change it to OFF ...


https://reviews.llvm.org/D23830



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r279627 - Fix mismatched new/free in Process:RunPrivateStateThread

2016-08-24 Thread Pavel Labath via lldb-commits
Author: labath
Date: Wed Aug 24 09:03:10 2016
New Revision: 279627

URL: http://llvm.org/viewvc/llvm-project?rev=279627&view=rev
Log:
Fix mismatched new/free in Process:RunPrivateStateThread

NFC

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=279627&r1=279626&r2=279627&view=diff
==
--- lldb/trunk/source/Target/Process.cpp (original)
+++ lldb/trunk/source/Target/Process.cpp Wed Aug 24 09:03:10 2016
@@ -4297,9 +4297,8 @@ Process::HaltPrivate()
 thread_result_t
 Process::PrivateStateThread (void *arg)
 {
-PrivateStateThreadArgs real_args = *static_cast 
(arg);
-free (arg);
-thread_result_t result = 
real_args.process->RunPrivateStateThread(real_args.is_secondary_thread);
+std::unique_ptr 
args_up(static_cast(arg));
+thread_result_t result = 
args_up->process->RunPrivateStateThread(args_up->is_secondary_thread);
 return result;
 }
 


___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D23802: gdb-remote: Make the sequence mutex non-recursive

2016-08-24 Thread Greg Clayton via lldb-commits
clayborg accepted this revision.
clayborg added a comment.
This revision is now accepted and ready to land.

Looks good.


https://reviews.llvm.org/D23802



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D23830: Add cmake option to choose whether to use the builtin demangler

2016-08-24 Thread Greg Clayton via lldb-commits
clayborg added a comment.

Looks good to me.


https://reviews.llvm.org/D23830



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [Project] LLDB

2016-08-24 Thread Kate Stone via lldb-commits
k8stone added a member: lldb-commits.

PROJECT DETAIL
  https://reviews.llvm.org/project/profile/39/



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] LLVM buildmaster will be updated and restarted tonight

2016-08-24 Thread Galina Kistanova via lldb-commits
Hello everyone,

LLVM buildmaster will be updated and restarted after 6 PM Pacific time
today.

Thanks

Galina
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D23830: Add cmake option to choose whether to use the builtin demangler

2016-08-24 Thread Kamil Rytarowski via lldb-commits
krytarowski added a comment.

In https://reviews.llvm.org/D23830#524039, @labath wrote:

> @krytarowski: I thought I'd switch netbsd as well, as all the other platforms 
> are doing it already. However, if you want to stick with the system demangler 
> by default, I can easily change it to OFF ...


Thanks, I need to take a closer look at it.


https://reviews.llvm.org/D23830



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D23825: Fix warnings preventing copy elision.

2016-08-24 Thread Taras Tsugrii via lldb-commits
wttsugrii added a comment.

Thanks for the review @clayborg. Could someone please commit this patch to lldb 
repo?


https://reviews.llvm.org/D23825



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r279672 - fix darwin_log test errors on macOS < 10.12

2016-08-24 Thread Todd Fiala via lldb-commits
Author: tfiala
Date: Wed Aug 24 16:40:29 2016
New Revision: 279672

URL: http://llvm.org/viewvc/llvm-project?rev=279672&view=rev
Log:
fix darwin_log test errors on macOS < 10.12

The newer event-based tests I added neglected to do the
macOS 10.12 check in the setup.  This caused earlier macOS
test suite runs to attempt to compile code that doesn't exist.

Modified:
lldb/trunk/packages/Python/lldbsuite/test/darwin_log.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/darwin_log.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/darwin_log.py?rev=279672&r1=279671&r2=279672&view=diff
==
--- lldb/trunk/packages/Python/lldbsuite/test/darwin_log.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/darwin_log.py Wed Aug 24 16:40:29 
2016
@@ -296,6 +296,15 @@ class DarwinLogEventBasedTestBase(lldbte
 # Call super's setUp().
 super(DarwinLogEventBasedTestBase, self).setUp()
 
+# Until other systems support this, exit
+# early if we're not macOS version 10.12
+# or greater.
+version = platform.mac_ver()[0].split('.')
+if ((int(version[0]) == 10) and (int(version[1]) < 12) or
+(int(version[0]) < 10)):
+self.skipTest("DarwinLog tests currently require macOS 10.12+")
+return
+
 # Source filename.
 self.source = 'main.c'
 


___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r279688 - Rewrite the GetFileInSDK methods in PlatformRemoteiOS,

2016-08-24 Thread Jason Molenda via lldb-commits
Author: jmolenda
Date: Wed Aug 24 18:46:48 2016
New Revision: 279688

URL: http://llvm.org/viewvc/llvm-project?rev=279688&view=rev
Log:
Rewrite the GetFileInSDK methods in PlatformRemoteiOS,
PlatformRemoteAppleWatch, PlatformRemoteAppleTV and remove the 
GetFileInSDKRoot method from those classes.

The rewrite uses the more modern FileSpec etc API to simplify,
and handles the case where an SDK Root is given to lldb with
the "/Symbols" directory name already appended.  The new version
will try appending "/Symbols" and "/Symbols.Internal" to the 
sdk root directories, and will also try appending nothing to
the sdk root directory in case it's handed such an sdkroot.

 

Modified:
lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h

Modified: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp?rev=279688&r1=279687&r2=279688&view=diff
==
--- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp 
(original)
+++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp Wed Aug 
24 18:46:48 2016
@@ -613,82 +613,33 @@ PlatformRemoteAppleTV::GetFileInSDK (con
  uint32_t sdk_idx,
  lldb_private::FileSpec &local_file)
 {
+Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
 if (sdk_idx < m_sdk_directory_infos.size())
 {
-char sdkroot_path[PATH_MAX];
-const SDKDirectoryInfo &sdk_dir_info = m_sdk_directory_infos[sdk_idx];
-if (sdk_dir_info.directory.GetPath(sdkroot_path, sizeof(sdkroot_path)))
+std::string sdkroot_path = 
m_sdk_directory_infos[sdk_idx].directory.GetPath();
+if (!sdkroot_path.empty() && platform_file_path && 
platform_file_path[0])
 {
-const bool symbols_dirs_only = true;
-
-return GetFileInSDKRoot (platform_file_path,
- sdkroot_path,
- symbols_dirs_only,
- local_file);
-}
-}
-return false;
-}
+// We may need to interpose "/Symbols/" or "/Symbols.Internal/" 
between the
+// SDK root directory and the file path.
 
-bool
-PlatformRemoteAppleTV::GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file)
-{
-Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
-if (sdkroot_path && sdkroot_path[0] && platform_file_path && 
platform_file_path[0])
-{
-char resolved_path[PATH_MAX];
-
-if (!symbols_dirs_only)
-{
-::snprintf (resolved_path, 
-sizeof(resolved_path), 
-"%s%s",
-sdkroot_path,
-platform_file_path);
-
-local_file.SetFile(resolved_path, true);
-if (local_file.Exists())
+const char *paths_to_try[] = { "Symbols", "", "Symbols.Internal", 
nullptr };
+for (size_t i = 0; paths_to_try[i] != nullptr; i++)
 {
-if (log)
+local_file.SetFile (sdkroot_path.c_str(), false);
+if (paths_to_try[i][0] != '\0')
+local_file.AppendPathComponent (paths_to_try[i]);
+local_file.AppendPathComponent (platform_file_path);
+local_file.ResolvePath();
+if (local_file.Exists())
 {
-log->Printf ("Found a copy of %s in the SDK dir %s", 
platform_file_path, sdkroot_path);
+if (log)
+log->Printf ("Found a copy of %s in the SDK dir 
%s/%s", platform_file_path, 
+   
 sdkroot_path.c_str(), 
+   
 paths_to_try[i]);
+return true;
 }
-return true;
-}
-}
-
-::snprintf (resolved_path,
-sizeof(resolved_path), 
-"%s/Symbols.Internal%s",
-sdkroot_path,
-platform_file_path);
-
-local_file.SetFile(resolved_

[Lldb-commits] Buildbot numbers for the last week of 8/14/2016 - 8/20/2016

2016-08-24 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the last week of 8/14/2016 - 8/20/2016.

Please see the same data in attached csv files:

The longest time each builder was red during the last week;
"Status change ratio" by active builder (percent of builds that changed the
builder status from greed to red or from red to green);
Count of commits by project;
Number of completed builds, failed builds and average build time for
successful builds per active builder;
Average waiting time for a revision to get build result per active builder
(response time);

Thanks

Galina


The longest time each builder was red during the last week:

 buildername|  was_red
+---
 clang-x86-win2008-selfhost | 60:16:25
 perf-x86_64-penryn-O3-polly-before-vectorizer-unprofitable | 49:57:48
 perf-x86_64-penryn-O3-polly-before-vectorizer  | 46:42:32
 sanitizer-x86_64-linux | 41:03:36
 clang-cmake-armv7-a15-selfhost-neon| 31:52:07
 perf-x86_64-penryn-O3-polly-unprofitable   | 31:06:18
 sanitizer-windows  | 26:30:33
 clang-cmake-armv7-a15-selfhost | 25:15:08
 lldb-x86_64-ubuntu-14.04-cmake | 23:41:28
 clang-cmake-thumbv7-a15-full-sh| 23:16:56
 perf-x86_64-penryn-O3-polly-before-vectorizer-detect-only  | 23:03:55
 llvm-hexagon-elf   | 17:20:35
 clang-hexagon-elf  | 17:19:27
 clang-native-arm-lnt   | 16:18:07
 clang-ppc64be-linux-multistage | 15:44:48
 clang-cmake-aarch64-42vma  | 15:29:03
 clang-ppc64le-linux| 15:23:19
 clang-cmake-aarch64-quick  | 15:15:35
 clang-ppc64le-linux-lnt| 15:08:01
 clang-cmake-aarch64-full   | 15:07:53
 clang-ppc64be-linux-lnt| 15:05:53
 clang-ppc64be-linux| 15:02:45
 clang-cuda-build   | 14:51:00
 clang-ppc64le-linux-multistage | 14:47:32
 sanitizer-ppc64be-linux| 13:53:01
 clang-cmake-mips   | 13:04:30
 sanitizer-ppc64le-linux| 12:39:04
 sanitizer-x86_64-linux-fuzzer  | 12:25:25
 sanitizer-x86_64-linux-bootstrap   | 11:25:10
 clang-x64-ninja-win7   | 10:56:13
 sanitizer-x86_64-linux-autoconf| 10:51:30
 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast | 10:08:55
 llvm-clang-lld-x86_64-debian-fast  | 09:19:05
 sanitizer-x86_64-linux-fast| 09:13:31
 clang-x86_64-debian-fast   | 09:12:12
 llvm-sphinx-docs   | 09:08:06
 lldb-windows7-android  | 07:54:42
 clang-atom-d525-fedora-rel | 07:44:38
 clang-cmake-armv7-a15-full | 07:09:44
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast   | 07:05:07
 clang-bpf-build| 07:03:03
 clang-3stage-ubuntu| 06:51:23
 clang-cmake-armv7-a15  | 06:33:01
 clang-cmake-thumbv7-a15| 06:32:59
 perf-x86_64-penryn-O3  | 06:04:03
 clang-with-lto-ubuntu  | 05:41:39
 clang-x86_64-linux-abi-test| 05:16:47
 lldb-amd64-ninja-netbsd7   | 03:37:40
 llvm-mips-linux| 02:35:03
 clang-sphinx-docs  | 02:02:46
 lldb-x86_64-ubuntu-14.04-android   | 01:39:43
 lldb-x86_64-ubuntu-14.04-buildserver   | 01:24:33
 lldb-x86_64-darwin-13.4| 01:08:13
 perf-x86_64-penryn-O3-polly-parallel-fast  | 00:47:32
 lld-x86_64-freebsd | 00:45:28
 lld-x86_64-darwin13| 00:25:45
 lldb-amd64-ninja-freebsd11 | 00:11:19
 lld-x86_64-win7| 00:10:16
 polly-amd64-linux  | 00:09:43
(59 rows)


"Status chan

[Lldb-commits] [lldb] r279704 - If the user has specified target.memory-module-load-level 'minimal'

2016-08-24 Thread Jason Molenda via lldb-commits
Author: jmolenda
Date: Wed Aug 24 21:33:09 2016
New Revision: 279704

URL: http://llvm.org/viewvc/llvm-project?rev=279704&view=rev
Log:
If the user has specified target.memory-module-load-level 'minimal'
and we couldn't find a dyld binary on the debug system, override
that setting and read dyld out of memory - we need to put an
internal breakpoint on dyld to register binaries being loaded or
unloaded; the debugger won't work right without dyld symbols.

 

Modified:
lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp

Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=279704&r1=279703&r2=279704&view=diff
==
--- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Wed Aug 24 
21:33:09 2016
@@ -2454,7 +2454,10 @@ ObjectFileMachO::ParseSymtab ()
 
 if (!data_was_read)
 {
-if (memory_module_load_level == 
eMemoryModuleLoadLevelComplete)
+// Always load dyld - the dynamic linker - from memory if 
we didn't find a binary anywhere else.
+// lldb will not register dylib/framework/bundle 
loads/unloads if we don't have the dyld symbols,
+// we force dyld to load from memory despite the user's 
target.memory-module-load-level setting.
+if (memory_module_load_level == 
eMemoryModuleLoadLevelComplete || m_header.filetype == llvm::MachO::MH_DYLINKER)
 {
 DataBufferSP nlist_data_sp (ReadMemory (process_sp, 
symoff_addr, nlist_data_byte_size));
 if (nlist_data_sp)
@@ -2472,8 +2475,7 @@ ObjectFileMachO::ParseSymtab ()
 indirect_symbol_index_data.SetData 
(indirect_syms_data_sp, 0, indirect_syms_data_sp->GetByteSize());
 }
 }
-
-if (memory_module_load_level >= 
eMemoryModuleLoadLevelPartial)
+else if (memory_module_load_level >= 
eMemoryModuleLoadLevelPartial)
 {
 if (function_starts_load_command.cmd)
 {


___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D23830: Add cmake option to choose whether to use the builtin demangler

2016-08-24 Thread Kamil Rytarowski via lldb-commits
krytarowski added a subscriber: joerg.
krytarowski added a comment.

Looks OK for NetBSD. @joerg are you fine with this?


https://reviews.llvm.org/D23830



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits