================
@@ -139,8 +177,53 @@ FileSpec HostInfoPosix::GetDefaultShell() {
   return FileSpec("/bin/sh");
 }
 
+FileSpec HostInfoPosix::GetProgramFileSpec() {
+  static FileSpec g_program_filespec;
+
+  if (!g_program_filespec) {
+    char exe_path[PATH_MAX];
+    ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path) - 1);
+    if (len > 0) {
+      exe_path[len] = 0;
+      g_program_filespec.SetFile(exe_path, FileSpec::Style::native);
+    }
+  }
+
+  return g_program_filespec;
+}
----------------
DavidSpickett wrote:

Let's leave this in Linux given that neither FreeBSD or NetBSD needed it until 
now.

I tried this on FreeBSD and I think this from the manpage is relevant:
```
This   functionality   is   deprecated. Users are  advised  to  use 
libprocstat(3) and kvm(3) instead.
```
I had to mount it manually and this is on an AWS instance so I expect any 
default FreeBSD install to be the same.

Once I did, only `/curproc/` worked, not `/self/`.

NetBSD allows `/self/` for Linux compatibility 
(https://man.netbsd.org/mount_procfs.8) but I wouldn't be surprised if it also 
didn't mount procfs by default.

https://github.com/llvm/llvm-project/pull/119694
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to