Beispiel #1
0
uint64_t PystonMemoryManager::getSymbolAddress(const std::string& name) {
    uint64_t base = (uint64_t)getValueOfRelocatableSym(name);
    if (base)
        return base;

    base = RTDyldMemoryManager::getSymbolAddress(name);
    if (base)
        return base;

    if (startswith(name, "__PRETTY_FUNCTION__")) {
        return getSymbolAddress(".L" + name);
    }

    RELEASE_ASSERT(0, "Could not find sym: %s", name.c_str());
    return 0;
}
Beispiel #2
0
uint64_t PystonMemoryManager::getSymbolAddress(const std::string& name) {
    uint64_t base = (uint64_t)getValueOfRelocatableSym(name);
    if (base)
        return base;

    // make sure our own c++ exc implementations symbols get used instead of gcc ones.
    base = getCXXUnwindSymbolAddress(name);
    if (base)
        return base;

    base = RTDyldMemoryManager::getSymbolAddress(name);
    if (base)
        return base;

    if (startswith(name, "__PRETTY_FUNCTION__")) {
        return getSymbolAddress(".L" + name);
    }

    RELEASE_ASSERT(0, "Could not find sym: %s", name.c_str());
    return 0;
}