mirror of
https://github.com/intel/llvm.git
synced 2026-01-25 19:44:38 +08:00
Make core files not crash when you load a core file into LLDB with just "lldb -c core".
To do this I added a few new ways to determine the OS from PT_NOTE notes in the ELF file: 1 - Look for "LINUX" notes which indicate "linux" should be the OS 2 - Look through the "CORE" notes with NT_FILE as the type and sniff data from the paths listed in this section. On Ubuntu they contain "/lib/x86_64-linux-gnu" which has the triple and allows us to set "linux" as the OS in the architecture returned from ObjectFileELF::GetArchitecture(). Setting the OS correctly allows us to get the triple correct so we can extract registers without asserting and killing LLDB. Also use the data from the NT_FILE to set the main executable if one isn't set in ProcessElfCore::DoLoadCore(). llvm-svn: 251537
This commit is contained in:
@@ -52,6 +52,12 @@ struct ELFNote
|
||||
/// True if the ELFRel entry was successfully read and false otherwise.
|
||||
bool
|
||||
Parse(const lldb_private::DataExtractor &data, lldb::offset_t *offset);
|
||||
|
||||
size_t
|
||||
GetByteSize() const
|
||||
{
|
||||
return 12 + llvm::RoundUpToAlignment (n_namesz, 4) + llvm::RoundUpToAlignment (n_descsz, 4);
|
||||
}
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user