//===-- HostInfoAIX.cpp -------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "lldb/Host/aix/HostInfoAIX.h" #include "lldb/Host/posix/Support.h" #include using namespace lldb_private; void HostInfoAIX::Initialize(SharedLibraryDirectoryHelper *helper) { HostInfoPosix::Initialize(helper); } void HostInfoAIX::Terminate() { HostInfoBase::Terminate(); } FileSpec HostInfoAIX::GetProgramFileSpec() { static FileSpec g_program_filespec; struct psinfo psinfoData; auto BufferOrError = getProcFile(getpid(), "psinfo"); if (BufferOrError) { std::unique_ptr PsinfoBuffer = std::move(*BufferOrError); memcpy(&psinfoData, PsinfoBuffer->getBufferStart(), sizeof(psinfoData)); llvm::StringRef exe_path( psinfoData.pr_psargs, strnlen(psinfoData.pr_psargs, sizeof(psinfoData.pr_psargs))); if (!exe_path.empty()) g_program_filespec.SetFile(exe_path, FileSpec::Style::native); } return g_program_filespec; }