> On Mar 10, 2016, at 4:34 AM, Bhushan Attarde via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > Hi All, > > I am working on adding support for MIPS coredump file in LLDB. > > I tried below command: > > (lldb) target create "app_mips.elf" --core "core_mips" > error: Unable to find process plug-in for core file '/home/battarde/test/ > core_mips’ > > Currently LLDB is not able to find a Process plugin for MIPS core file. I > debugged this and found that while finding the process plugin, > "ProcessElfCore::CanDebug" calls "ModuleList::GetSharedModule" > to create a Module for corefile. But Module constructor in Module.cpp has > this: > > // First extract all module specifications from the file using the local > // file path. If there are no specifications, then don't fill anything in > ModuleSpecList modules_specs; > if (ObjectFile::GetModuleSpecifications(module_spec.GetFileSpec(), 0, 0, > modules_specs) == 0) > return; > > The issue here is that the targets like MIPS depends on elf flags to > determine the actual architecture but core file doesn't contain any arch > information (header.e_flags is 0) so it can't decide the arch contained in > core file. > As no specifications are found, Module constructor takes an early exit > leaving its members uninitialized. > > Going further, Module also fails to get the ObjectFile representation as it > doesn't contain enough information (Module::m_file, Module::m_arch) required > to get ObjectFile. > > So, "ProcessElfCore::CanDebug" returns false and because of this LLDB gives > error saying that it is unable to find process plug-in for core file. > > I can make mipsVariantFromElfFlags() to return some default architecture (to > ensure we always have valid arch when it can't be decided from elf flags) but > this won't always work (core's default arch and executable_elf's arch may not > "match" always). > What could be the proper fix to this issue?
Try specifying a full triple when creating the target: (lldb) target create --arch=mips32-pc-linux "app_mips.elf" --core "core_mips" If any ELF file is unable to figure out its file type, it should leave things generic so the triple for the core ELF file should be something like: "mips-*-*". If that is true, then this should match your more specific triple specified in the target of "mips32-pc-linux". Try out specifying the triple and let me know how that goes. Greg Clayton _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev