From 470d3906dc4709b7bd477b0327e4b47e6b0f94d0 Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Sat, 27 Apr 2019 21:05:55 +0100 Subject: [PATCH] Improve PDB parsing to include symbol undecoration. --- development/pdbconv.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/development/pdbconv.py b/development/pdbconv.py index a48a7d966..5ac41275f 100644 --- a/development/pdbconv.py +++ b/development/pdbconv.py @@ -8,6 +8,7 @@ import tempfile from typing import Dict import pdbparse +import pdbparse.undecorate import requests logger = logging.getLogger(__name__) @@ -217,6 +218,8 @@ class PDBConvertor: "T_64PLONG": 8, "PTR_64": 8, "PTR_32": 4, + "PTR_NEAR32": 4, + "PTR_NEAR64": 8, } def __init__(self, filename): @@ -311,10 +314,11 @@ class PDBConvertor: virt_base = sects[sym.segment - 1].VirtualAddress except IndexError: continue + name, _, _ = pdbparse.undecorate.undecorate(sym.name) if omap: - output[sym.name] = {"address": omap.remap(sym.offset + virt_base)} + output[name] = {"address": omap.remap(sym.offset + virt_base)} else: - output[sym.name] = {"address": sym.offset + virt_base} + output[name] = {"address": sym.offset + virt_base} return output