Пример #1
0
Файл: trace.py Проект: kylog/osv
 def __init__(self, filename, delegate=debug.DummyResolver()):
     self.delegate = delegate
     self.symbols = []
     self.modules = []
     self.segments = []
     self.cache = {}
     TraceDumpReaderBase.__init__(self, filename)
     self.symbols.sort()
     self.modules.sort()
     self.segments.sort()
Пример #2
0
def symbol_resolver(args):
    if args.no_resolve:
        return debug.DummyResolver()

    if args.exe:
        elf_path = args.exe
    elif args.debug:
        elf_path = 'build/debug/loader.elf'
    else:
        elf_path = 'build/release/loader.elf'

    base = debug.DummyResolver()
    try:
        base = trace.TraceDumpSymbols(args.tracefile, base)
    except trace.NotATraceDumpFile:
        # not a trace dump file. Assume trace buffer file, continue as usual
        pass

    return BeautifyingResolver(debug.SymbolResolver(elf_path, base, show_inline=not args.no_inlined_by))
Пример #3
0
Файл: trace.py Проект: tinti/osv
def symbol_resolver(args):
    if args.no_resolve:
        return debug.DummyResolver()

    if args.exe:
        elf_path = args.exe
    elif args.debug:
        elf_path = 'build/debug/loader.elf'
    else:
        elf_path = 'build/release/loader.elf'

    return BeautifyingResolver(debug.SymbolResolver(elf_path, show_inline=not args.no_inlined_by))
Пример #4
0
Файл: trace.py Проект: kylog/osv
            return ''

        frames = list(
            debug.resolve_all(self.resolver, (x - 1 for x in backtrace if x)))

        while frames[0].name and frames[0].name.startswith("tracepoint"):
            frames.pop(0)

        return '   [' + ', '.join(map(self.formatter, frames)) + ']'


def simple_symbol_formatter(src_addr):
    return '0x%x' % src_addr.addr


default_backtrace_formatter = BacktraceFormatter(debug.DummyResolver(),
                                                 simple_symbol_formatter)


class TimeRange(object):
    """
    Represents time from @begin inclusive to @end exclusive.
    None in any of these means open range from that side.

    """
    def __init__(self, begin, end):
        self.begin = begin
        self.end = end

    def __contains__(self, timestamp):
        if self.begin and timestamp < self.begin: