diff options
-rw-r--r-- | lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp | 20 | ||||
-rw-r--r-- | lldb/source/Plugins/Process/elf-core/ThreadElfCore.h | 40 |
3 files changed, 22 insertions, 44 deletions
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp index a79fec66e33..bfc68a633f2 100644 --- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp +++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp @@ -486,8 +486,8 @@ ProcessElfCore::ParseThreadContextsFromNoteSegment(const elf::ELFProgramHeader * bool have_prpsinfo = false; ArchSpec arch = GetArchitecture(); - ELFPrPsInfo prpsinfo; - ELFPrStatus prstatus; + ELFLinuxPrPsInfo prpsinfo; + ELFLinuxPrStatus prstatus; size_t header_size; size_t len; @@ -548,7 +548,7 @@ ProcessElfCore::ParseThreadContextsFromNoteSegment(const elf::ELFProgramHeader * have_prstatus = true; prstatus.Parse(note_data, arch); thread_data->signo = prstatus.pr_cursig; - header_size = ELFPrStatus::GetSize(arch); + header_size = ELFLinuxPrStatus::GetSize(arch); len = note_data.GetByteSize() - header_size; thread_data->gpregset = DataExtractor(note_data, header_size, len); break; diff --git a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp index a6963f8bf08..a7229663dc8 100644 --- a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp +++ b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp @@ -131,21 +131,21 @@ ThreadElfCore::CalculateStopInfo () //---------------------------------------------------------------- // Parse PRSTATUS from NOTE entry //---------------------------------------------------------------- -ELFPrStatus::ELFPrStatus() +ELFLinuxPrStatus::ELFLinuxPrStatus() { - memset(this, 0, sizeof(ELFPrStatus)); + memset(this, 0, sizeof(ELFLinuxPrStatus)); } bool -ELFPrStatus::Parse(DataExtractor &data, ArchSpec &arch) +ELFLinuxPrStatus::Parse(DataExtractor &data, ArchSpec &arch) { ByteOrder byteorder = data.GetByteOrder(); size_t len; switch(arch.GetCore()) { case ArchSpec::eCore_x86_64_x86_64: - len = data.ExtractBytes(0, ELFPRSTATUS64_SIZE, byteorder, this); - return len == ELFPRSTATUS64_SIZE; + len = data.ExtractBytes(0, ELFLINUXPRSTATUS64_SIZE, byteorder, this); + return len == ELFLINUXPRSTATUS64_SIZE; default: return false; } @@ -154,21 +154,21 @@ ELFPrStatus::Parse(DataExtractor &data, ArchSpec &arch) //---------------------------------------------------------------- // Parse PRPSINFO from NOTE entry //---------------------------------------------------------------- -ELFPrPsInfo::ELFPrPsInfo() +ELFLinuxPrPsInfo::ELFLinuxPrPsInfo() { - memset(this, 0, sizeof(ELFPrPsInfo)); + memset(this, 0, sizeof(ELFLinuxPrPsInfo)); } bool -ELFPrPsInfo::Parse(DataExtractor &data, ArchSpec &arch) +ELFLinuxPrPsInfo::Parse(DataExtractor &data, ArchSpec &arch) { ByteOrder byteorder = data.GetByteOrder(); size_t len; switch(arch.GetCore()) { case ArchSpec::eCore_x86_64_x86_64: - len = data.ExtractBytes(0, ELFPRPSINFO64_SIZE, byteorder, this); - return len == ELFPRPSINFO64_SIZE; + len = data.ExtractBytes(0, ELFLINUXPRPSINFO64_SIZE, byteorder, this); + return len == ELFLINUXPRPSINFO64_SIZE; default: return false; } diff --git a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h index c61f449cd0a..ca6339d7ec9 100644 --- a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h +++ b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h @@ -26,25 +26,11 @@ struct compat_timeval // simply reading data from the buffer. // The following macros are used to specify the size. // Calculating size using sizeof() wont work because of padding. -#ifdef __FreeBSD__ -#define ELFPRSTATUS64_SIZE (48) -#define ELFPRPSINFO64_SIZE (120) -#else -#define ELFPRSTATUS64_SIZE (112) -#define ELFPRPSINFO64_SIZE (132) -#endif - -struct ELFPrStatus +#define ELFLINUXPRSTATUS64_SIZE (112) +#define ELFLINUXPRPSINFO64_SIZE (132) + +struct ELFLinuxPrStatus { -#ifdef __FreeBSD__ - int32_t pr_version; - uint64_t pr_statussz; - uint64_t pr_gregsetsz; - uint64_t pr_fpregsetsz; - int32_t pr_osreldate; - int32_t pr_cursig; - uint32_t pr_pid; -#else int32_t si_signo; int32_t si_code; int32_t si_errno; @@ -63,9 +49,8 @@ struct ELFPrStatus compat_timeval pr_stime; compat_timeval pr_cutime; compat_timeval pr_cstime; -#endif - ELFPrStatus(); + ELFLinuxPrStatus(); bool Parse(lldb_private::DataExtractor &data, lldb_private::ArchSpec &arch); @@ -76,21 +61,15 @@ struct ELFPrStatus switch(arch.GetCore()) { case lldb_private::ArchSpec::eCore_x86_64_x86_64: - return ELFPRSTATUS64_SIZE; + return ELFLINUXPRSTATUS64_SIZE; default: return 0; } } }; -struct ELFPrPsInfo +struct ELFLinuxPrPsInfo { -#ifdef __FreeBSD__ - int32_t pr_version; - uint64_t pr_psinfosz; - char pr_fname[17]; - char pr_psargs[81]; -#else char pr_state; char pr_sname; char pr_zomb; @@ -104,9 +83,8 @@ struct ELFPrPsInfo int32_t pr_sid; char pr_fname[16]; char pr_psargs[80]; -#endif - ELFPrPsInfo(); + ELFLinuxPrPsInfo(); bool Parse(lldb_private::DataExtractor &data, lldb_private::ArchSpec &arch); @@ -117,7 +95,7 @@ struct ELFPrPsInfo switch(arch.GetCore()) { case lldb_private::ArchSpec::eCore_x86_64_x86_64: - return ELFPRPSINFO64_SIZE; + return ELFLINUXPRPSINFO64_SIZE; default: return 0; } |