code: def symbolize_address(self, addr, binary, offset):
      # Use the chain of symbolizers:
      # Breakpad symbolizer -> LLVM symbolizer -> addr2line/atos
      # (fall back to next symbolizer if the previous one fails).
      if not binary in symbolizers:
          symbolizers[binary] = ChainSymbolizer(
              [BreakpadSymbolizerFactory(binary), self.llvm_symbolizer]
          )
      result = symbolizers[binary].symbolize(addr, binary, offset)
      if result is None:
          # Initialize system symbolizer only if other symbolizers failed.
          symbolizers[binary].append_symbolizer(
              SystemSymbolizerFactory(self.system, addr, binary)
          )
          result = symbolizers[binary].symbolize(addr, binary, offset)
      # The system symbolizer must produce some result.
      assert result
      return result
  
imports: import bisect
  import os
  import re
  import subprocess
  import sys
label_desc: Use image node_id 2 for calling the SymbolizationLoop obj's underlying member method code with example usage: obj.symbolize_address(addr, binary, offset) and returns: result