From 5db2030e4d527445f13a6a2a4aaa2fc0d20e230a Mon Sep 17 00:00:00 2001 From: Zion Leonahenahe Basque Date: Tue, 16 Jan 2024 16:11:16 -0700 Subject: [PATCH] Revert bad cache (PR #88) (#89) * Revert "#87 add client symbol cache for gdb (#88)" This reverts commit 922eedd4304b49bb48c6156cbfa1a67bf5546120. * Roll back bad caching --- decomp2dbg/__init__.py | 2 +- decomp2dbg/clients/gdb/gdb_client.py | 18 ++----------- decomp2dbg/clients/gdb/gdb_client_test.py | 32 ----------------------- decomp2dbg/clients/gdb/symbol_mapper.py | 3 --- 4 files changed, 3 insertions(+), 52 deletions(-) delete mode 100644 decomp2dbg/clients/gdb/gdb_client_test.py diff --git a/decomp2dbg/__init__.py b/decomp2dbg/__init__.py index e2f36bf..2ba37a5 100644 --- a/decomp2dbg/__init__.py +++ b/decomp2dbg/__init__.py @@ -1,4 +1,4 @@ -__version__ = "3.8.4" +__version__ = "3.8.5" try: from .clients.client import DecompilerClient diff --git a/decomp2dbg/clients/gdb/gdb_client.py b/decomp2dbg/clients/gdb/gdb_client.py index ca4e5d0..7581f54 100644 --- a/decomp2dbg/clients/gdb/gdb_client.py +++ b/decomp2dbg/clients/gdb/gdb_client.py @@ -23,7 +23,6 @@ def __init__(self, gdb_client, name="decompiler", host="127.0.0.1", port=3662): self.symbol_mapper = SymbolMapper() self._is_pie = None self._lvar_bptr = None - self._symbol_cache = set() @property @lru_cache() @@ -53,13 +52,6 @@ def decompiler_connected(self): def decompiler_disconnected(self): self.gdb_client.on_decompiler_disconnected(self.name) - def _cache(self, item): - if item in self._symbol_cache: - return False - - self._symbol_cache.add(item) - return True - def update_symbols(self): self.symbol_mapper.text_base_addr = self.text_base_addr @@ -74,10 +66,7 @@ def update_symbols(self): # add symbols with native support if possible for addr, func in func_headers.items(): - symbol = (func["name"], int(addr, 0), "function", func["size"]) - new_entry = self._cache(symbol) - if new_entry: - syms_to_add.append(symbol) + syms_to_add.append((func["name"], int(addr, 0), "function", func["size"])) sym_name_set.add(func["name"]) for addr, global_var in global_vars.items(): @@ -86,10 +75,7 @@ def update_symbols(self): if clean_name in sym_name_set: continue - symbol = (clean_name, int(addr,0), "object", global_var_size) - new_entry = self._cache(symbol) - if new_entry: - syms_to_add.append(symbol) + syms_to_add.append((clean_name, int(addr, 0), "object", global_var_size)) try: self.symbol_mapper.add_native_symbols(syms_to_add) diff --git a/decomp2dbg/clients/gdb/gdb_client_test.py b/decomp2dbg/clients/gdb/gdb_client_test.py deleted file mode 100644 index 941a17c..0000000 --- a/decomp2dbg/clients/gdb/gdb_client_test.py +++ /dev/null @@ -1,32 +0,0 @@ -import unittest -import sys -from unittest.mock import Mock - -sys.modules["gdb"] = Mock() -from decomp2dbg import GDBDecompilerClient - - -# run with python -m unittest gdb_client_test.TestGDBDecompilerClient - -class TestGDBDecompilerClient(unittest.TestCase): - def setUp(self) -> None: - self._symbols = [ - ("f1", 0x100, "function", 0x10), - ("f2", 0x200, "function", 0x10), - ("g1", 0x300, "object", 8), - ("g2", 0x400, "object", 8) - ] - - self._c = GDBDecompilerClient(None) - for s in self._symbols: - self._c._cache(s) - - def test_cache_new_entry(self): - entry = ("new symbol f3", 0x500, "function", 0x10) - is_new = self._c._cache(entry) - self.assertEqual(is_new, True, "entry is not not new") - - def test_cache_old_entry(self): - existing = self._symbols[0] - is_new = self._c._cache(existing) - self.assertEqual(is_new, False, "entry is old, but cache func says it's new") diff --git a/decomp2dbg/clients/gdb/symbol_mapper.py b/decomp2dbg/clients/gdb/symbol_mapper.py index 2496c8e..1329366 100644 --- a/decomp2dbg/clients/gdb/symbol_mapper.py +++ b/decomp2dbg/clients/gdb/symbol_mapper.py @@ -62,9 +62,6 @@ def add_native_symbols(self, sym_info_list): return False # info("{:d} symbols will be added".format(len(sym_info_list))) - if len(sym_info_list) == 0: - return True - self._delete_old_sym_files() # add each symbol into a mass symbol commit