diff --git a/linux-ramdump-parser-v2/parser_util.py b/linux-ramdump-parser-v2/parser_util.py index 2b03cba10a1bff24837cb8a658a8ded7be7b165a..ae2449b31156740f6911cd3b3713696be84e554e 100644 --- a/linux-ramdump-parser-v2/parser_util.py +++ b/linux-ramdump-parser-v2/parser_util.py @@ -13,6 +13,7 @@ import os import platform import glob import re +import string _parsers = [] @@ -29,6 +30,11 @@ class ParserConfig(object): self.shortopt = shortopt self.optional = optional +def cleanupString(unclean_str): + if unclean_str is None: + return unclean_str + else: + return ''.join([c for c in unclean_str if c in string.printable]) def register_parser(longopt, desc, shortopt=None, optional=False): """Decorator to register a parser class (a class that inherits from diff --git a/linux-ramdump-parser-v2/parsers/dmesg.py b/linux-ramdump-parser-v2/parsers/dmesg.py index 5f900afbe7ee576b93a130367a01f81cd710560d..b2dded2ec2f11d088fa7364af575f5598c565b95 100644 --- a/linux-ramdump-parser-v2/parsers/dmesg.py +++ b/linux-ramdump-parser-v2/parsers/dmesg.py @@ -13,7 +13,7 @@ import re import string from print_out import print_out_str -from parser_util import register_parser, RamParser +from parser_util import register_parser, RamParser, cleanupString @register_parser('--dmesg', 'Print the dmesg', shortopt='-d') @@ -23,17 +23,11 @@ class Dmesg(RamParser): super(Dmesg, self).__init__(*args) self.wrap_cnt = 0 - def cleanupString(self, unclean_str): - if unclean_str is None: - return str - else: - return ''.join([c for c in unclean_str if c in string.printable]) - def extract_dmesg_flat(self, ramdump): addr = ramdump.read_word(ramdump.addr_lookup('log_buf')) size = ramdump.read_word(ramdump.addr_lookup('log_buf_len')) dmesg = ramdump.read_physical(ramdump.virt_to_phys(addr), size) - print_out_str(self.cleanupString(dmesg.decode('ascii', 'ignore'))) + print_out_str(cleanupString(dmesg.decode('ascii', 'ignore'))) def log_from_idx(self, ramdump, idx, logbuf): len_offset = ramdump.field_offset('struct log', 'len') diff --git a/linux-ramdump-parser-v2/parsers/taskdump.py b/linux-ramdump-parser-v2/parsers/taskdump.py index 7de493c346180715f829a1c7576c76a8298066f2..387c9dcd9fda7b1fd55dd592ed8aa8c3ab7a3402 100644 --- a/linux-ramdump-parser-v2/parsers/taskdump.py +++ b/linux-ramdump-parser-v2/parsers/taskdump.py @@ -11,14 +11,7 @@ import string from print_out import print_out_str -from parser_util import register_parser, RamParser - - -def cleanupString(str): - if str is None: - return str - else: - return ''.join([c for c in str if c in string.printable]) +from parser_util import register_parser, RamParser, cleanupString cpu_context_save_str = ''.join([ 'I', # __u32 r4 diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py index 678e1c650a7bfbc07e465c0a13c68a87ec312821..ea0904ef9fcc80194b9df0931884b41143eeda5d 100644 --- a/linux-ramdump-parser-v2/ramdump.py +++ b/linux-ramdump-parser-v2/ramdump.py @@ -21,6 +21,7 @@ from tempfile import NamedTemporaryFile import gdbmi from print_out import print_out_str from mmu import Armv7MMU, Armv7LPAEMMU +from parser_util import cleanupString FP = 11 SP = 13 @@ -898,7 +899,7 @@ class RamDump(): ebi[0].seek(offset) a = ebi[0].read(length) if trace: - print_out_str('result = {0}'.format(a)) + print_out_str('result = {0}'.format(cleanupString(a))) print_out_str('lenght = {0}'.format(len(a))) return a