Пример #1
0
        self.cpu = p.cpu.__name__

    def build(self):
        f = self.format(self.filename)
        p = self.cls(f)
        p.cpu = importlib.import_module(self.cpu)
        return p


#------------------------------------------------------------------------------
try:
    import transaction
    from ZODB import DB, FileStorage
    from persistent import Persistent
except ImportError,e:
    logger.warning(e.message)

    # declare void Session class:
    class Session(object):
        _is_active = False
    def __init__(self,filename=None):
        logger.info('this session is not active')
    def add(self,key,obj):
        pass
    def commit(self):
        pass
else:

    # Session database class:
    class Session(object):
        _is_active = True
Пример #2
0
try:
    import sqlalchemy as sql
    from sqlalchemy import orm
    from sqlalchemy.ext.declarative import declarative_base
    has_sql = True
    Session = orm.scoped_session(orm.sessionmaker())
    Base = declarative_base()
    logflag = conf.getboolean('db', 'log')
    if logflag:
        for l in ('sqlalchemy.engine', 'sqlalchemy.orm'):
            alog = logging.getLogger(l)
            for h in logger.handlers:
                alog.addHandler(h)
            alog.setLevel(logger.level)
except ImportError:
    logger.warning(u"package sqlalchemy not found.")
    has_sql = False


def create(filename=None):
    """creates the database engine and bind it to the scoped Session class.
    The database URL (see :mod:`config.py`) is opened and the
    schema is created if necessary. The default URL uses *sqlite* dialect and
    opens a temporary file for storage.
    """
    import tempfile
    url = conf.get('db', 'url')
    if not url.endswith('.db'):
        if conf.has_option('log', 'file'):
            case = conf.get('log', 'file').rpartition('.')[0]
        else:
Пример #3
0
        if self.cpu is None:
            logger.error('no cpu imported')
            raise ValueError
        maxlen = self.cpu.disassemble.maxlen
        try:
            istr = self.mmap.read(vaddr,maxlen)
        except MemoryError,e:
            logger.verbose("vaddr %s is not mapped"%vaddr)
            raise MemoryError(e)
        else:
            if len(istr)<=0 or not isinstance(istr[0],str):
                logger.verbose("failed to read instruction at %s"%vaddr)
                return None
        i = self.cpu.disassemble(istr[0],**kargs)
        if i is None:
            logger.warning("disassemble failed at vaddr %s"%vaddr)
            return None
        else:
            i.address = vaddr
            return i

    # optional codehelper method allows platform-specific analysis of
    # either a (raw) list of instruction, a block/func object (see amoco.code)
    # the default helper is a no-op:
    def codehelper(self,seq=None,block=None,func=None):
        if seq is not None: return seq
        if block is not None: return block
        if func is not None: return func


#------------------------------------------------------------------------------
Пример #4
0
        self.cpu = p.cpu.__name__

    def build(self):
        f = self.format(self.filename)
        p = self.cls(f)
        p.cpu = importlib.import_module(self.cpu)
        return p


#------------------------------------------------------------------------------
try:
    import transaction
    from ZODB import DB, FileStorage
    from persistent import Persistent
except ImportError, e:
    logger.warning(e.message)

    # declare void Session class:
    class Session(object):
        _is_active = False

    def __init__(self, filename=None):
        logger.info('this session is not active')

    def add(self, key, obj):
        pass

    def commit(self):
        pass
else:
Пример #5
0
        if self.cpu is None:
            logger.error('no cpu imported')
            raise ValueError
        maxlen = self.cpu.disassemble.maxlen
        try:
            istr = self.mmap.read(vaddr, maxlen)
        except MemoryError, e:
            logger.verbose("vaddr %s is not mapped" % vaddr)
            raise MemoryError(e)
        else:
            if len(istr) <= 0 or not isinstance(istr[0], str):
                logger.verbose("failed to read instruction at %s" % vaddr)
                return None
        i = self.cpu.disassemble(istr[0], **kargs)
        if i is None:
            logger.warning("disassemble failed at vaddr %s" % vaddr)
            return None
        else:
            i.address = vaddr
            return i

    # optional codehelper method allows platform-specific analysis of
    # either a (raw) list of instruction, a block/func object (see amoco.code)
    # the default helper is a no-op:
    def codehelper(self, seq=None, block=None, func=None):
        if seq is not None: return seq
        if block is not None: return block
        if func is not None: return func


#------------------------------------------------------------------------------