def _db_thread_to_satyr(self, db_thread): self.log_debug("Creating threads using satyr") thread = satyr.GdbThread() thread.number = db_thread.number for db_frame in db_thread.frames: frame = satyr.GdbFrame() frame.address = db_frame.symbolsource.offset frame.library_name = db_frame.symbolsource.path frame.number = db_frame.order if db_frame.symbolsource.symbol is not None: frame.function_name = db_frame.symbolsource.symbol.name else: frame.function_name = "??" if db_frame.symbolsource.source_path is not None: frame.source_file = db_frame.symbolsource.source_path if db_frame.symbolsource.line_number is not None: frame.source_line = db_frame.symbolsource.line_number thread.frames.append(frame) if self.normalize: stacktrace = satyr.GdbStacktrace() stacktrace.threads.append(thread) stacktrace.normalize() return thread
def _db_thread_to_satyr(self, db_thread): thread = satyr.GdbThread() thread.number = db_thread.number for db_frame in db_thread.frames: frame = satyr.GdbFrame() frame.address = db_frame.symbolsource.offset frame.library_name = \ db_frame.symbolsource.path.encode("ascii", "ignore") frame.number = db_frame.order if db_frame.symbolsource.symbol is not None: frame.function_name = db_frame.symbolsource.symbol.name else: frame.function_name = "??" if db_frame.symbolsource.source_path is not None: frame.source_file = \ db_frame.symbolsource.source_path.encode("ascii", "ignore") if db_frame.symbolsource.line_number is not None: frame.source_line = db_frame.symbolsource.line_number thread.frames.append(frame) if self.normalize: stacktrace = satyr.GdbStacktrace() stacktrace.threads.append(thread) stacktrace.normalize() return thread