internal static string? DlIteratePhdrFindLibraryPath()

in JetBrains.Profiler.Api/src/Impl/Linux/LinuxHelper.cs [17:31]


    internal static string? DlIteratePhdrFindLibraryPath(string libraryName)
    {
      var tailLibraryName = '/' + libraryName;
      string? resultPath = null;
      LibCSo6.dl_iterate_phdr((ref dl_phdr_info info, nuint size, IntPtr data) =>
        {
          var path = Marshal.PtrToStringAnsi(info.dlpi_name);
          if (path == null || !path.EndsWith(tailLibraryName))
            return 0;
          resultPath = path;
          return 1;
        }, IntPtr.Zero);

      return resultPath;
    }