//===-- ThreadElfCore.h -----------------------------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// #ifndef LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_THREADELFCORE_H #define LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_THREADELFCORE_H #include "Plugins/Process/elf-core/RegisterUtilities.h" #include "lldb/Target/Thread.h" #include "lldb/Utility/DataExtractor.h" #include "llvm/ADT/DenseMap.h" #include <optional> #include <string> struct compat_timeval { … }; namespace lldb_private { class ProcessInstanceInfo; } // PRSTATUS structure's size differs based on architecture. // This is the layout in the x86-64 arch. // In the i386 case we parse it manually and fill it again // in the same structure // The gp registers are also a part of this struct, but they are handled // separately #undef si_signo #undef si_code #undef si_errno struct ELFLinuxPrStatus { … }; static_assert …; struct ELFLinuxSigInfo { … }; static_assert …; // PRPSINFO structure's size differs based on architecture. // This is the layout in the x86-64 arch case. // In the i386 case we parse it manually and fill it again // in the same structure struct ELFLinuxPrPsInfo { … }; static_assert …; struct ThreadData { … }; class ThreadElfCore : public lldb_private::Thread { … }; #endif // LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_THREADELFCORE_H