[lldb-dev] Loading Linux core files

Ted Woodward ted.woodward at codeaurora.org
Mon Jul 13 16:22:32 PDT 2015


I'm trying to load a core file on Ubuntu 12, but I'm getting an assert in
ThreadElfCore::CreateRegisterContextForFrame() because the
arch.GetTriple().getOS() returns UnknownOS instead of Linux.

 

I've stepped through loading my binary, and the target's OS Is correctly set
to Linux. But ProcessElfCore::DoLoadCore() has this code:

    // Even if the architecture is set in the target, we need to override

    // it to match the core file which is always single arch.

    ArchSpec arch (m_core_module_sp->GetArchitecture());

    if (arch.IsValid())

        m_target.SetArchitecture(arch);

 

The problem is Linux core files don't have anything in them to indicate that
they are Linux. Linux is identified through a note that is added by
gcc/clang, but isn't in the core file. So x86-64-unknown-Linux gets replaced
by x86-64-unknown-unknown.

 

I'm thinking of changing this to not override the architecture if the
target's OS is Linux. Any thoughts?

 

--

Qualcomm Innovation Center, Inc.

The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150713/5b3df6c9/attachment.html>


More information about the lldb-dev mailing list