Re: [Lldb-commits] [PATCH] D23802: gdb-remote: Make the sequence mutex non-recursive
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
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
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
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
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
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
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
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
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.
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
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,
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
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'
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
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