X-Git-Url: https://jxself.org/git/?p=b43-tools.git;a=blobdiff_plain;f=debug%2Fb43-fwdump;h=6ac7aa0f01c6d8c7140555614a41f0a5e34ddd04;hp=24f1f0d23d8e99cbb60b24eb7180e0eec93ee100;hb=ec240fb4669b46a55f6a6f9589281fccf9a98cbd;hpb=29f17f2762560656a54d1ab24eb459784449d0b9 diff --git a/debug/b43-fwdump b/debug/b43-fwdump index 24f1f0d..6ac7aa0 100755 --- a/debug/b43-fwdump +++ b/debug/b43-fwdump @@ -21,6 +21,7 @@ import getopt from libb43 import * from sys import stdout from tempfile import * +import re def usage(): @@ -91,21 +92,28 @@ def dump_regs(prefix, regs): stdout.write("\n") return +def dasmLineIsPC(line, pc): + m = re.match(r'.*/\*\s+([0-9a-fA-F]+)\s+\*/.*', line, re.DOTALL) + if not m: + return False + linePC = int(m.group(1), 16) + return pc == linePC + def makeShortDump(dasm, pc): dasm = dasm.splitlines() i = 0 for line in dasm: - if "/* %03X */" % pc in line: + if dasmLineIsPC(line, pc): break i += 1 - if i >= len(dasm): + else: return "" ret = "" pos = max(i - 8, 0) end = min(i + 8, len(dasm) - 1) while pos != end: ret += dasm[pos] - if "/* %03X */" % pc in dasm[pos]: + if dasmLineIsPC(dasm[pos], pc): ret += "\t\t<<<<<<<<<<<" ret += "\n" pos += 1