[Lldb-commits] [lldb] r346109 - [LLDB] Fix FreeBSD/Darwin build
Author: devnexen Date: Sun Nov 4 15:19:25 2018 New Revision: 346109 URL: http://llvm.org/viewvc/llvm-project?rev=346109&view=rev Log: [LLDB] Fix FreeBSD/Darwin build Reviewers: JDevlieghere, tatyana-krasnukha Reviwed By: tatyana-krasnukha Differential Revision: https://reviews.llvm.org/D54084 Modified: lldb/trunk/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp Modified: lldb/trunk/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp?rev=346109&r1=346108&r2=346109&view=diff == --- lldb/trunk/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp (original) +++ lldb/trunk/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp Sun Nov 4 15:19:25 2018 @@ -63,12 +63,13 @@ Status NativeProcessProtocol::Launch( // Verify the working directory is valid if one was specified. FileSpec working_dir(launch_info.GetWorkingDirectory()); - if (working_dir && - (!working_dir.ResolvePath() || - !llvm::sys::fs::is_directory(working_dir.GetPath())) { -error.SetErrorStringWithFormat("No such file or directory: %s", + if (working_dir) { +FileInstance::Instance().Resolve(working_dir); +if (!llvm::sys::fs::is_directory(working_dir.GetPath())) { + error.SetErrorStringWithFormat("No such file or directory: %s", working_dir.GetCString()); -return error; + return error; +} } // Launch the inferior. Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp?rev=346109&r1=346108&r2=346109&view=diff == --- lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp (original) +++ lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp Sun Nov 4 15:19:25 2018 @@ -375,11 +375,13 @@ Status ProcessFreeBSD::DoLaunch(Module * FileSpec working_dir = launch_info.GetWorkingDirectory(); namespace fs = llvm::sys::fs; - if (working_dir && (!working_dir.ResolvePath() || - !fs::is_directory(working_dir.GetPath( { -error.SetErrorStringWithFormat("No such file or directory: %s", + if (working_dir) { +FileSystem::Instance().Resolve(working_dir); +if (!fs::is_directory(working_dir.GetPath())) { + error.SetErrorStringWithFormat("No such file or directory: %s", working_dir.GetCString()); -return error; + return error; +} } SetPrivateState(eStateLaunching); ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r333888 - [LLDB] Unit tests basic support for OpenBSD
Author: devnexen Date: Mon Jun 4 04:57:12 2018 New Revision: 333888 URL: http://llvm.org/viewvc/llvm-project?rev=333888&view=rev Log: [LLDB] Unit tests basic support for OpenBSD Add OpenBSD python module in order to support unit tests. Reviewers: labath, zturner Reviewed By: labath Differential Revision: https://reviews.llvm.org/D47692 Modified: lldb/trunk/lit/lit.cfg lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Modified: lldb/trunk/lit/lit.cfg URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/lit.cfg?rev=333888&r1=333887&r2=333888&view=diff == --- lldb/trunk/lit/lit.cfg (original) +++ lldb/trunk/lit/lit.cfg Mon Jun 4 04:57:12 2018 @@ -78,6 +78,10 @@ if platform.system() in ['Darwin']: config.cc += " -isysroot %s" % sdk_path config.cxx += " -isysroot %s" % sdk_path +if platform.system() in ['OpenBSD']: +config.cc += " -pthread" +config.cxx += " -pthread" + config.substitutions.append(('%cc', config.cc)) config.substitutions.append(('%cxx', config.cxx)) Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=333888&r1=333887&r2=333888&view=diff == --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Mon Jun 4 04:57:12 2018 @@ -490,6 +490,8 @@ def getsource_if_available(obj): def builder_module(): if sys.platform.startswith("freebsd"): return __import__("builder_freebsd") +if sys.platform.startswith("openbsd"): +return __import__("builder_openbsd") if sys.platform.startswith("netbsd"): return __import__("builder_netbsd") if sys.platform.startswith("linux"): @@ -1395,7 +1397,7 @@ class Base(unittest2.TestCase): def getstdlibFlag(self): """ Returns the proper -stdlib flag, or empty if not required.""" -if self.platformIsDarwin() or self.getPlatform() == "freebsd": +if self.platformIsDarwin() or self.getPlatform() == "freebsd" or self.getPlatform() == "openbsd": stdlibflag = "-stdlib=libc++" else: # this includes NetBSD stdlibflag = "" @@ -1424,7 +1426,7 @@ class Base(unittest2.TestCase): 'FRAMEWORK_INCLUDES': "-F%s" % self.framework_dir, 'LD_EXTRAS': "%s -Wl,-rpath,%s" % (self.dsym, self.framework_dir), } -elif sys.platform.rstrip('0123456789') in ('freebsd', 'linux', 'netbsd', 'darwin') or os.environ.get('LLDB_BUILD_TYPE') == 'Makefile': +elif sys.platform.startswith('win'): d = { 'CXX_SOURCES': sources, 'EXE': exe_name, @@ -1433,8 +1435,8 @@ class Base(unittest2.TestCase): os.path.join( os.environ["LLDB_SRC"], "include")), -'LD_EXTRAS': "-L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)} -elif sys.platform.startswith('win'): +'LD_EXTRAS': "-L%s -lliblldb" % os.environ["LLDB_IMPLIB_DIR"]} +else: d = { 'CXX_SOURCES': sources, 'EXE': exe_name, @@ -1443,7 +1445,7 @@ class Base(unittest2.TestCase): os.path.join( os.environ["LLDB_SRC"], "include")), -'LD_EXTRAS': "-L%s -lliblldb" % os.environ["LLDB_IMPLIB_DIR"]} +'LD_EXTRAS': "-L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)} if self.TraceOn(): print( "Building LLDB Driver (%s) from sources %s" % @@ -1464,15 +1466,6 @@ class Base(unittest2.TestCase): 'FRAMEWORK_INCLUDES': "-F%s" % self.framework_dir, 'LD_EXTRAS': "%s -Wl,-rpath,%s -dynamiclib" % (self.dsym, self.framework_dir), } -elif sys.platform.rstrip('0123456789') in ('freebsd', 'linux', 'netbsd', 'darwin') or os.environ.get('LLDB_BUILD_TYPE') == 'Makefile': -d = { -'DYLIB_CXX_SOURCES': sources, -'DYLIB_NAME': lib_name, -'CFLAGS_EXTRAS': "%s -I%s -fPIC" % (stdflag, -os.path.join( -os.environ["LLDB_SRC"], -"include")), -'LD_EXTRAS': "-shared -L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)} elif self.getPlatform() == 'windows': d = { 'DY
[Lldb-commits] [lldb] r333889 - [LLDB] Unit tests basic support for OpenBSD
Author: devnexen Date: Mon Jun 4 04:59:18 2018 New Revision: 333889 URL: http://llvm.org/viewvc/llvm-project?rev=333889&view=rev Log: [LLDB] Unit tests basic support for OpenBSD OpenBSD python module. Added: lldb/trunk/packages/Python/lldbsuite/test/plugins/builder_openbsd.py Added: lldb/trunk/packages/Python/lldbsuite/test/plugins/builder_openbsd.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/plugins/builder_openbsd.py?rev=333889&view=auto == --- lldb/trunk/packages/Python/lldbsuite/test/plugins/builder_openbsd.py (added) +++ lldb/trunk/packages/Python/lldbsuite/test/plugins/builder_openbsd.py Mon Jun 4 04:59:18 2018 @@ -0,0 +1,10 @@ +from builder_base import * + + +def buildDsym( +sender=None, +architecture=None, +compiler=None, +dictionary=None, +testdir=None): +return False ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r334177 - [LLDB] Unit tests / typo fix
Author: devnexen Date: Thu Jun 7 01:58:34 2018 New Revision: 334177 URL: http://llvm.org/viewvc/llvm-project?rev=334177&view=rev Log: [LLDB] Unit tests / typo fix removing unnecessary comma. Modified: lldb/trunk/unittests/Symbol/TestType.cpp Modified: lldb/trunk/unittests/Symbol/TestType.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/TestType.cpp?rev=334177&r1=334176&r2=334177&view=diff == --- lldb/trunk/unittests/Symbol/TestType.cpp (original) +++ lldb/trunk/unittests/Symbol/TestType.cpp Thu Jun 7 01:58:34 2018 @@ -30,7 +30,7 @@ void TestGetTypeScopeAndBasenameHelper(c EXPECT_EQ(name, expected_name); } } -}; +} TEST(Type, GetTypeScopeAndBasename) { TestGetTypeScopeAndBasenameHelper("int", false, "", ""); ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r335489 - [LLDB] Select helper sign comparison fix
Author: devnexen Date: Mon Jun 25 09:10:20 2018 New Revision: 335489 URL: http://llvm.org/viewvc/llvm-project?rev=335489&view=rev Log: [LLDB] Select helper sign comparison fix The constant could be unsigned thus explicit cast to silent compilation warnings Reviewers: aprantl Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D48540 Modified: lldb/trunk/source/Utility/SelectHelper.cpp Modified: lldb/trunk/source/Utility/SelectHelper.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/SelectHelper.cpp?rev=335489&r1=335488&r2=335489&view=diff == --- lldb/trunk/source/Utility/SelectHelper.cpp (original) +++ lldb/trunk/source/Utility/SelectHelper.cpp Mon Jun 25 09:10:20 2018 @@ -109,8 +109,8 @@ lldb_private::Status SelectHelper::Selec pair.second.PrepareForSelect(); const lldb::socket_t fd = pair.first; #if !defined(__APPLE__) && !defined(_MSC_VER) -lldbassert(fd < FD_SETSIZE); -if (fd >= FD_SETSIZE) { +lldbassert(fd < static_cast(FD_SETSIZE)); +if (fd >= static_cast(FD_SETSIZE)) { error.SetErrorStringWithFormat("%i is too large for select()", fd); return error; } ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r352744 - [LLDB] FreeBSD suppress compilation warning
Author: devnexen Date: Thu Jan 31 03:54:58 2019 New Revision: 352744 URL: http://llvm.org/viewvc/llvm-project?rev=352744&view=rev Log: [LLDB] FreeBSD suppress compilation warning Reviewers: labath, teemperor Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D57506 Msource/Plugins/Process/FreeBSD/ProcessMonitor.cpp Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp?rev=352744&r1=352743&r2=352744&view=diff == --- lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp (original) +++ lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Thu Jan 31 03:54:58 2019 @@ -167,7 +167,7 @@ static size_t DoWriteMemory(lldb::pid_t pi_desc.piod_op = PIOD_WRITE_D; pi_desc.piod_offs = (void *)vm_addr; - pi_desc.piod_addr = (void *)buf; + pi_desc.piod_addr = const_cast(buf); pi_desc.piod_len = size; if (PTRACE(PT_IO, pid, (caddr_t)&pi_desc, 0) < 0) { ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] lldb unused var fix for NetBSD < 10. (PR #93377)
https://github.com/devnexen created https://github.com/llvm/llvm-project/pull/93377 None >From 9dcd8be919582006b5ade0b6c1f3074678f50bed Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 25 May 2024 10:59:54 + Subject: [PATCH] lldb unused var fix for NetBSD < 10. --- lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp b/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp index f561c21b9d91c..77b4301ea22e5 100644 --- a/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp +++ b/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp @@ -180,8 +180,6 @@ void NativeThreadNetBSD::SetStepping() { } std::string NativeThreadNetBSD::GetName() { - Log *log = GetLog(POSIXLog::Thread); - #ifdef PT_LWPSTATUS struct ptrace_lwpstatus info = {}; info.pl_lwpid = m_tid; @@ -193,6 +191,8 @@ std::string NativeThreadNetBSD::GetName() { return info.pl_name; #else std::vector infos; + Log *log = GetLog(POSIXLog::Thread); + int mib[5] = {CTL_KERN, KERN_LWP, static_cast(m_process.GetID()), sizeof(struct kinfo_lwp), 0}; size_t size; ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] lldb unused var fix for NetBSD < 10. (PR #93377)
https://github.com/devnexen closed https://github.com/llvm/llvm-project/pull/93377 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen created https://github.com/llvm/llvm-project/pull/79662 before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 >From 492521e66288a497bf5b4a4a8ce554dffeb35727 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 26 Jan 2024 22:47:15 + Subject: [PATCH] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 --- .../Process/FreeBSD/NativeProcessFreeBSD.cpp | 29 ++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp index 19e0986ace31ff..7540ba29651782 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -48,14 +48,37 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + Status status; + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, &len, nullptr, 0); + if (ret != 0) { +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); + } + + if (proc_debug < 1) { +return Status("process debug disabled by security.bsd.unprivileged_proc_debug oid"); + } + + return status; +} + // Public Static Methods llvm::Expected> NativeProcessFreeBSD::Manager::Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) { Log *log = GetLog(POSIXLog::Process); - Status status; + + status = CanTrace(); + + if (status.Fail()) { +LLDB_LOG(log, "failed to launch process: {0}", status); +return status.ToError(); + } + ::pid_t pid = ProcessLauncherPosixFork() .LaunchProcess(launch_info, status) .GetProcessId(); @@ -388,6 +411,10 @@ Status NativeProcessFreeBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr, Status error; int ret; + error = CanTrace(); + if (error.Fail()) +return error; + errno = 0; ret = ptrace(req, static_cast<::pid_t>(pid), static_cast(addr), data); ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen updated https://github.com/llvm/llvm-project/pull/79662 >From 52618e6e6e028ea4a65728eda0c877dce176ccfa Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 26 Jan 2024 22:47:15 + Subject: [PATCH] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 --- .../Process/FreeBSD/NativeProcessFreeBSD.cpp | 29 ++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp index 19e0986ace31ff6..b676d536ca89495 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -48,14 +48,37 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + Status status; + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, + &len, nullptr, 0); + if (ret != 0) +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); + + if (proc_debug < 1) +return Status( +"process debug disabled by security.bsd.unprivileged_proc_debug oid"); + + return status; +} + // Public Static Methods llvm::Expected> NativeProcessFreeBSD::Manager::Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) { Log *log = GetLog(POSIXLog::Process); - Status status; + + status = CanTrace(); + + if (status.Fail()) { +LLDB_LOG(log, "failed to launch process: {0}", status); +return status.ToError(); + } + ::pid_t pid = ProcessLauncherPosixFork() .LaunchProcess(launch_info, status) .GetProcessId(); @@ -388,6 +411,10 @@ Status NativeProcessFreeBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr, Status error; int ret; + error = CanTrace(); + if (error.Fail()) +return error; + errno = 0; ret = ptrace(req, static_cast<::pid_t>(pid), static_cast(addr), data); ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
@@ -48,14 +48,37 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + Status status; + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, + &len, nullptr, 0); + if (ret != 0) +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); devnexen wrote: since a long time :) e.g. even 9.0, EOL since more than a decade, had it. https://github.com/llvm/llvm-project/pull/79662 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
@@ -48,14 +48,37 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + Status status; devnexen wrote: true https://github.com/llvm/llvm-project/pull/79662 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen updated https://github.com/llvm/llvm-project/pull/79662 >From 7fccec625677e8cabe8c69ac2651c37716dc30bf Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 26 Jan 2024 22:47:15 + Subject: [PATCH] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 --- .../Process/FreeBSD/NativeProcessFreeBSD.cpp | 28 ++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp index 19e0986ace31ff6..9692670e851c77a 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -48,14 +48,36 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, + &len, nullptr, 0); + if (ret != 0) +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); + + if (proc_debug < 1) +return Status( +"process debug disabled by security.bsd.unprivileged_proc_debug oid"); + + return {}; +} + // Public Static Methods llvm::Expected> NativeProcessFreeBSD::Manager::Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) { Log *log = GetLog(POSIXLog::Process); - Status status; + + status = CanTrace(); + + if (status.Fail()) { +LLDB_LOG(log, "failed to launch process: {0}", status); +return status.ToError(); + } + ::pid_t pid = ProcessLauncherPosixFork() .LaunchProcess(launch_info, status) .GetProcessId(); @@ -388,6 +410,10 @@ Status NativeProcessFreeBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr, Status error; int ret; + error = CanTrace(); + if (error.Fail()) +return error; + errno = 0; ret = ptrace(req, static_cast<::pid_t>(pid), static_cast(addr), data); ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen updated https://github.com/llvm/llvm-project/pull/79662 >From 746a6959e270b086184ce095b11eb4df691dc4c9 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 26 Jan 2024 22:47:15 + Subject: [PATCH] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 --- .../Process/FreeBSD/NativeProcessFreeBSD.cpp | 27 --- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp index 19e0986ace31ff..24726832fa4598 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -48,20 +48,38 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, + &len, nullptr, 0); + if (ret != 0) +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); + + if (proc_debug < 1) +return Status( +"process debug disabled by security.bsd.unprivileged_proc_debug oid"); + + return {}; +} + // Public Static Methods llvm::Expected> NativeProcessFreeBSD::Manager::Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) { Log *log = GetLog(POSIXLog::Process); - Status status; + ::pid_t pid = ProcessLauncherPosixFork() .LaunchProcess(launch_info, status) .GetProcessId(); LLDB_LOG(log, "pid = {0:x}", pid); if (status.Fail()) { +auto error = CanTrace(); LLDB_LOG(log, "failed to launch process: {0}", status); +if (status.Fail()) + return error.ToError(); return status.ToError(); } @@ -392,8 +410,11 @@ Status NativeProcessFreeBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr, ret = ptrace(req, static_cast<::pid_t>(pid), static_cast(addr), data); - if (ret == -1) -error.SetErrorToErrno(); + if (ret == -1) { +error = CanTrace(); +if (error.Success()) + error.SetErrorToErrno(); + } if (result) *result = ret; ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen updated https://github.com/llvm/llvm-project/pull/79662 >From 7cfed8b3440d9257598fe94e02adc4d926692850 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 26 Jan 2024 22:47:15 + Subject: [PATCH] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 --- .../Process/FreeBSD/NativeProcessFreeBSD.cpp | 39 --- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp index 19e0986ace31ff..9c620e4807e344 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -48,20 +48,38 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, + &len, nullptr, 0); + if (ret != 0) +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); + + if (proc_debug < 1) +return Status( +"process debug disabled by security.bsd.unprivileged_proc_debug oid"); + + return {}; +} + // Public Static Methods llvm::Expected> NativeProcessFreeBSD::Manager::Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) { Log *log = GetLog(POSIXLog::Process); - Status status; + ::pid_t pid = ProcessLauncherPosixFork() .LaunchProcess(launch_info, status) .GetProcessId(); LLDB_LOG(log, "pid = {0:x}", pid); if (status.Fail()) { +auto error = CanTrace(); LLDB_LOG(log, "failed to launch process: {0}", status); +if (status.Fail()) + return error.ToError(); return status.ToError(); } @@ -392,8 +410,11 @@ Status NativeProcessFreeBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr, ret = ptrace(req, static_cast<::pid_t>(pid), static_cast(addr), data); - if (ret == -1) -error.SetErrorToErrno(); + if (ret == -1) { +error = CanTrace(); +if (error.Success()) + error.SetErrorToErrno(); + } if (result) *result = ret; @@ -707,8 +728,12 @@ Status NativeProcessFreeBSD::SetBreakpoint(lldb::addr_t addr, uint32_t size, Status NativeProcessFreeBSD::GetLoadedModuleFileSpec(const char *module_path, FileSpec &file_spec) { Status error = PopulateMemoryRegionCache(); - if (error.Fail()) + if (error.Fail()) { +auto status = CanTrace(); +if (status.Fail()) + return status; return error; + } FileSpec module_file_spec(module_path); FileSystem::Instance().Resolve(module_file_spec); @@ -729,8 +754,12 @@ NativeProcessFreeBSD::GetFileLoadAddress(const llvm::StringRef &file_name, lldb::addr_t &load_addr) { load_addr = LLDB_INVALID_ADDRESS; Status error = PopulateMemoryRegionCache(); - if (error.Fail()) + if (error.Fail()) { +auto status = CanTrace(); +if (status.Fail()) + return status; return error; + } FileSpec file(file_name); for (const auto &it : m_mem_region_cache) { ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
devnexen wrote: ping :) https://github.com/llvm/llvm-project/pull/79662 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Fix FreeBSD build. (PR #81353)
https://github.com/devnexen created https://github.com/llvm/llvm-project/pull/81353 None >From eaa5c11364bebb5e85a1dc976f2bfaceefaef7f8 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 10 Feb 2024 10:02:07 + Subject: [PATCH] [lldb] Fix FreeBSD build. --- .../Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp b/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp index 997b5908511032..abfbdb1a970d4d 100644 --- a/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp +++ b/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp @@ -50,7 +50,7 @@ class ProcessFreeBSDKernelFVC : public ProcessFreeBSDKernel { class ProcessFreeBSDKernelKVM : public ProcessFreeBSDKernel { public: ProcessFreeBSDKernelKVM(lldb::TargetSP target_sp, lldb::ListenerSP listener, - kvm_t *fvc); + kvm_t *fvc, const FileSpec &core_file); ~ProcessFreeBSDKernelKVM(); ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Fix FreeBSD build. (PR #81353)
https://github.com/devnexen closed https://github.com/llvm/llvm-project/pull/81353 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen updated https://github.com/llvm/llvm-project/pull/79662 >From e2da8be542e7116369ab91cb0ce25163e18e76f3 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 26 Jan 2024 22:47:15 + Subject: [PATCH] [lldb] checks if lldb can trace/attach/set a breakpoint a process or load a file to debug on FreeBSD. before having the generic EINVAL message, we check if the `security.bsd.unprivileged_proc_debug` allows process debugging. close #79634 --- .../Process/FreeBSD/NativeProcessFreeBSD.cpp | 39 --- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp index 19e0986ace31ff..9c620e4807e344 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -48,20 +48,38 @@ static Status EnsureFDFlags(int fd, int flags) { return error; } +static Status CanTrace() { + int proc_debug, ret; + size_t len = sizeof(proc_debug); + ret = ::sysctlbyname("security.bsd.unprivileged_proc_debug", &proc_debug, + &len, nullptr, 0); + if (ret != 0) +return Status("sysctlbyname() security.bsd.unprivileged_proc_debug failed"); + + if (proc_debug < 1) +return Status( +"process debug disabled by security.bsd.unprivileged_proc_debug oid"); + + return {}; +} + // Public Static Methods llvm::Expected> NativeProcessFreeBSD::Manager::Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) { Log *log = GetLog(POSIXLog::Process); - Status status; + ::pid_t pid = ProcessLauncherPosixFork() .LaunchProcess(launch_info, status) .GetProcessId(); LLDB_LOG(log, "pid = {0:x}", pid); if (status.Fail()) { +auto error = CanTrace(); LLDB_LOG(log, "failed to launch process: {0}", status); +if (status.Fail()) + return error.ToError(); return status.ToError(); } @@ -392,8 +410,11 @@ Status NativeProcessFreeBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr, ret = ptrace(req, static_cast<::pid_t>(pid), static_cast(addr), data); - if (ret == -1) -error.SetErrorToErrno(); + if (ret == -1) { +error = CanTrace(); +if (error.Success()) + error.SetErrorToErrno(); + } if (result) *result = ret; @@ -707,8 +728,12 @@ Status NativeProcessFreeBSD::SetBreakpoint(lldb::addr_t addr, uint32_t size, Status NativeProcessFreeBSD::GetLoadedModuleFileSpec(const char *module_path, FileSpec &file_spec) { Status error = PopulateMemoryRegionCache(); - if (error.Fail()) + if (error.Fail()) { +auto status = CanTrace(); +if (status.Fail()) + return status; return error; + } FileSpec module_file_spec(module_path); FileSystem::Instance().Resolve(module_file_spec); @@ -729,8 +754,12 @@ NativeProcessFreeBSD::GetFileLoadAddress(const llvm::StringRef &file_name, lldb::addr_t &load_addr) { load_addr = LLDB_INVALID_ADDRESS; Status error = PopulateMemoryRegionCache(); - if (error.Fail()) + if (error.Fail()) { +auto status = CanTrace(); +if (status.Fail()) + return status; return error; + } FileSpec file(file_name); for (const auto &it : m_mem_region_cache) { ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] checks beforehand if lldb can trace/attach a process on FreeBSD. (PR #79662)
https://github.com/devnexen closed https://github.com/llvm/llvm-project/pull/79662 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r371417 - LLDB - Simplify GetProgramFileSpec
Author: devnexen Date: Mon Sep 9 09:10:14 2019 New Revision: 371417 URL: http://llvm.org/viewvc/llvm-project?rev=371417&view=rev Log: LLDB - Simplify GetProgramFileSpec Reviewers: zturner, emaste Reviewed By: emaste Differential Revision: https://reviews.llvm.org/D46518 Modified: lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp Modified: lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp?rev=371417&r1=371416&r2=371417&view=diff == --- lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp (original) +++ lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp Mon Sep 9 09:10:14 2019 @@ -64,13 +64,10 @@ FileSpec HostInfoFreeBSD::GetProgramFile static FileSpec g_program_filespec; if (!g_program_filespec) { int exe_path_mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, getpid()}; -size_t exe_path_size; -if (sysctl(exe_path_mib, 4, NULL, &exe_path_size, NULL, 0) == 0) { - char *exe_path = new char[exe_path_size]; - if (sysctl(exe_path_mib, 4, exe_path, &exe_path_size, NULL, 0) == 0) -g_program_filespec.SetFile(exe_path, FileSpec::Style::native); - delete[] exe_path; -} +char exe_path[PATH_MAX]; +size_t exe_path_size = sizeof(exe_path); +if (sysctl(exe_path_mib, 4, exe_path, &exe_path_size, NULL, 0) == 0) + g_program_filespec.SetFile(exe_path, false); } return g_program_filespec; } ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r371491 - [LLDB] FreeBSD fix new SetFile call.
Author: devnexen Date: Tue Sep 10 00:33:39 2019 New Revision: 371491 URL: http://llvm.org/viewvc/llvm-project?rev=371491&view=rev Log: [LLDB] FreeBSD fix new SetFile call. Modified: lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp Modified: lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp?rev=371491&r1=371490&r2=371491&view=diff == --- lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp (original) +++ lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp Tue Sep 10 00:33:39 2019 @@ -67,7 +67,7 @@ FileSpec HostInfoFreeBSD::GetProgramFile char exe_path[PATH_MAX]; size_t exe_path_size = sizeof(exe_path); if (sysctl(exe_path_mib, 4, exe_path, &exe_path_size, NULL, 0) == 0) - g_program_filespec.SetFile(exe_path, false); + g_program_filespec.SetFile(exe_path, FileSpec::Style::native); } return g_program_filespec; } ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r363135 - [LLDB] Fix FreeBSD build
Author: devnexen Date: Wed Jun 12 01:54:14 2019 New Revision: 363135 URL: http://llvm.org/viewvc/llvm-project?rev=363135&view=rev Log: [LLDB] Fix FreeBSD build The auxiliary vector method had the wrong signature. Reviewers: MaskRay, teemperor, aadsm Reviewed By: MaskRay, teemperor Differential Revision: https://reviews.llvm.org/D63187 Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h?rev=363135&r1=363134&r2=363135&view=diff == --- lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h (original) +++ lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h Wed Jun 12 01:54:14 2019 @@ -127,7 +127,7 @@ public: size_t PutSTDIN(const char *buf, size_t len, lldb_private::Status &error) override; - const lldb_private::DataExtractor GetAuxvData() override; + lldb_private::DataExtractor GetAuxvData() override; // ProcessFreeBSD internal API. ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r365761 - [LLDB] Fix FreeBSD build.
Author: devnexen Date: Thu Jul 11 05:21:04 2019 New Revision: 365761 URL: http://llvm.org/viewvc/llvm-project?rev=365761&view=rev Log: [LLDB] Fix FreeBSD build. To align with the LaunchThread change. Reviewers: MaskRay, mgorny Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D64398 Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.h Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp?rev=365761&r1=365760&r2=365761&view=diff == --- lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp (original) +++ lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Thu Jul 11 05:21:04 2019 @@ -708,7 +708,7 @@ ProcessMonitor::ProcessMonitor( const lldb_private::ProcessLaunchInfo & /* launch_info */, lldb_private::Status &error) : m_process(static_cast(process)), - m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; std::unique_ptr args( @@ -738,7 +738,7 @@ ProcessMonitor::ProcessMonitor( m_monitor_thread = Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!m_monitor_thread.IsJoinable()) { + if (!m_monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process launch failed."); return; @@ -747,8 +747,8 @@ ProcessMonitor::ProcessMonitor( ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process, lldb::pid_t pid, lldb_private::Status &error) -: m_process(static_cast(process)), m_pid(pid), - m_terminal_fd(-1), m_operation(0) { +: m_process(static_cast(process)), + m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(pid), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; sem_init(&m_operation_pending, 0, 0); @@ -776,7 +776,7 @@ ProcessMonitor::ProcessMonitor(ProcessFr m_monitor_thread = Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!m_monitor_thread.IsJoinable()) { + if (!m_monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process attach failed."); return; @@ -789,11 +789,13 @@ ProcessMonitor::~ProcessMonitor() { Stop void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) { static const char *g_thread_name = "lldb.process.freebsd.operation"; - if (m_operation_thread.IsJoinable()) + if (m_operation_thread->IsJoinable()) return; m_operation_thread = - ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args, &error); + ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args); + if (!m_operation_thread) + error = m_operation_thread.takeError(); } void *ProcessMonitor::LaunchOpThread(void *arg) { @@ -955,11 +957,14 @@ void ProcessMonitor::StartAttachOpThread lldb_private::Status &error) { static const char *g_thread_name = "lldb.process.freebsd.operation"; - if (m_operation_thread.IsJoinable()) + if (m_operation_thread->IsJoinable()) return; m_operation_thread = - ThreadLauncher::LaunchThread(g_thread_name, AttachOpThread, args, &error); + ThreadLauncher::LaunchThread(g_thread_name, AttachOpThread, args); + + if (!m_operation_thread) + error = m_operation_thread.takeError(); } void *ProcessMonitor::AttachOpThread(void *arg) { @@ -1379,10 +1384,10 @@ bool ProcessMonitor::DupDescriptor(const } void ProcessMonitor::StopMonitoringChildProcess() { - if (m_monitor_thread.IsJoinable()) { -m_monitor_thread.Cancel(); -m_monitor_thread.Join(nullptr); -m_monitor_thread.Reset(); + if (m_monitor_thread->IsJoinable()) { +m_monitor_thread->Cancel(); +m_monitor_thread->Join(nullptr); +m_monitor_thread->Reset(); } } @@ -1417,10 +1422,10 @@ void ProcessMonitor::StopMonitor() { bool ProcessMonitor::WaitForInitialTIDStop(lldb::tid_t tid) { return true; } void ProcessMonitor::StopOpThread() { - if (!m_operation_thread.IsJoinable()) + if (!m_operation_thread->IsJoinable()) return; - m_operation_thread.Cancel(); - m_operation_thread.Join(nullptr); - m_operation_thread.Reset(); + m_operation_thread->Cancel(); + m_operation_thread->Join(nullptr); + m_operation_thread->Reset(); } Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessMonitor.h?re