forked from OSchip/llvm-project
parent
54829ec5d0
commit
b0224b1f1d
|
@ -201,7 +201,20 @@ static bool parseCommand(StringRef InputString, bool &IsData,
|
||||||
static uint64_t getModuleSectionIndexForAddress(const std::string &ModuleName,
|
static uint64_t getModuleSectionIndexForAddress(const std::string &ModuleName,
|
||||||
uint64_t Address) {
|
uint64_t Address) {
|
||||||
|
|
||||||
Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(ModuleName);
|
// following ModuleName processing was copied from
|
||||||
|
// LLVMSymbolizer::getOrCreateModuleInfo().
|
||||||
|
// it needs to be refactored to avoid code duplication.
|
||||||
|
std::string BinaryName = ModuleName;
|
||||||
|
size_t ColonPos = ModuleName.find_last_of(':');
|
||||||
|
// Verify that substring after colon form a valid arch name.
|
||||||
|
if (ColonPos != std::string::npos) {
|
||||||
|
std::string ArchStr = ModuleName.substr(ColonPos + 1);
|
||||||
|
if (Triple(ArchStr).getArch() != Triple::UnknownArch) {
|
||||||
|
BinaryName = ModuleName.substr(0, ColonPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(BinaryName);
|
||||||
|
|
||||||
if (error(BinaryOrErr))
|
if (error(BinaryOrErr))
|
||||||
return object::SectionedAddress::UndefSection;
|
return object::SectionedAddress::UndefSection;
|
||||||
|
|
Loading…
Reference in New Issue