Author: kamil Date: Sat Jan 28 14:04:53 2017 New Revision: 293392 URL: http://llvm.org/viewvc/llvm-project?rev=293392&view=rev Log: Switch HostInfoNetBSD::GetProgramFileSpec to sysctl(7)
Summary: Remove dependency on the proc (/proc) filesystem, which is optional. KERN_PROC_PATHNAME is available in NetBSD-current and will land NetBSD 8.0. Older stable versions of NetBSD will not be supported. Sponsored by <The NetBSD Foundation> Reviewers: emaste, joerg, labath, clayborg Reviewed By: clayborg Subscribers: #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D29089 Modified: lldb/trunk/source/Host/netbsd/HostInfoNetBSD.cpp Modified: lldb/trunk/source/Host/netbsd/HostInfoNetBSD.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/netbsd/HostInfoNetBSD.cpp?rev=293392&r1=293391&r2=293392&view=diff ============================================================================== --- lldb/trunk/source/Host/netbsd/HostInfoNetBSD.cpp (original) +++ lldb/trunk/source/Host/netbsd/HostInfoNetBSD.cpp Sat Jan 28 14:04:53 2017 @@ -85,15 +85,15 @@ FileSpec HostInfoNetBSD::GetProgramFileS static FileSpec g_program_filespec; if (!g_program_filespec) { - ssize_t len; - static char buf[PATH_MAX]; - char name[PATH_MAX]; + static const int name[] = { + CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME, + }; + char path[MAXPATHLEN]; + size_t len; - ::snprintf(name, PATH_MAX, "/proc/%d/exe", ::getpid()); - len = ::readlink(name, buf, PATH_MAX - 1); - if (len != -1) { - buf[len] = '\0'; - g_program_filespec.SetFile(buf, false); + len = sizeof(path); + if (sysctl(name, __arraycount(name), path, &len, NULL, 0) != -1) { + g_program_filespec.SetFile(path, false); } } return g_program_filespec; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits