parameters: (self, elf_file_path, addr2line_path, callback, inlines=False,
        max_concurrent_jobs=None, addr2line_timeout=30, max_queue_size=50,
        source_root_path=None, strip_base_path=None)
docstring: Args:
        elf_file_path: path of the elf file to be symbolized.
        addr2line_path: path of the toolchain's addr2line binary.
        callback: a callback which will be invoked for each resolved symbol with
            the two args (sym_info, callback_arg). The former is an instance of
            |ELFSymbolInfo| and contains the symbol information. The latter is an
            embedder-provided argument which is passed to SymbolizeAsync().
        inlines: when True, the ELFSymbolInfo will contain also the details about
            the outer inlining functions. When False, only the innermost function
            will be provided.
        max_concurrent_jobs: Max number of addr2line instances spawned.
            Parallelize responsibly, addr2line is a memory and I/O monster.
        max_queue_size: Max number of outstanding requests per addr2line instance.
        addr2line_timeout: Max time (in seconds) to wait for a addr2line response.
            After the timeout, the instance will be considered hung and respawned.
        source_root_path: In some toolchains only the name of the source file is
            is output, without any path information; disambiguation searches
            through the source directory specified by |source_root_path| argument
            for files whose name matches, adding the full path information to the
            output. For example, if the toolchain outputs "unicode.cc" and there
            is a file called "unicode.cc" located under |source_root_path|/foo,
            the tool will replace "unicode.cc" with
            "|source_root_path|/foo/unicode.cc". If there are multiple files with
            the same name, disambiguation will fail because the tool cannot
            determine which of the files was the source of the symbol.
        strip_base_path: Rebases the symbols source paths onto |source_root_path|
            (i.e replace |strip_base_path| with |source_root_path).
docstring_summary: Args:
        elf_file_path: path of the elf file to be symbolized.
        addr2line_path: path of the toolchain's addr2line binary.
        callback: a callback which will be invoked for each resolved symbol with
            the two args (sym_info, callback_arg). The former is an instance of
            |ELFSymbolInfo| and contains the symbol information. The latter is an
            embedder-provided argument which is passed to SymbolizeAsync().
        inlines: when True, the ELFSymbolInfo will contain also the details about
            the outer inlining functions. When False, only the innermost function
            will be provided.
        max_concurrent_jobs: Max number of addr2line instances spawned.
            Parallelize responsibly, addr2line is a memory and I/O monster.
        max_queue_size: Max number of outstanding requests per addr2line instance.
        addr2line_timeout: Max time (in seconds) to wait for a addr2line response.
            After the timeout, the instance will be considered hung and respawned.
        source_root_path: In some toolchains only the name of the source file is
            is output, without any path information; disambiguation searches
            through the source directory specified by |source_root_path| argument
            for files whose name matches, adding the full path information to the
            output. For example, if the toolchain outputs "unicode.cc" and there
            is a file called "unicode.cc" located under |source_root_path|/foo,
            the tool will replace "unicode.cc" with
            "|source_root_path|/foo/unicode.cc". If there are multiple files with
            the same name, disambiguation will fail because the tool cannot
            determine which of the files was the source of the symbol.
        strip_base_path: Rebases the symbols source paths onto |source_root_path|
            (i.e replace |strip_base_path| with |source_root_path).
docstring_tokens: Args : elf_file_path : path of the elf file to be symbolized . addr2line_path : path of the toolchain s addr2line binary . callback : a callback which will be invoked for each resolved symbol with the two args ( sym_info callback_arg ) . The former is an instance of |ELFSymbolInfo| and contains the symbol information . The latter is an embedder - provided argument which is passed to SymbolizeAsync () . inlines : when True the ELFSymbolInfo will contain also the details about the outer inlining functions . When False only the innermost function will be provided . max_concurrent_jobs : Max number of addr2line instances spawned . Parallelize responsibly addr2line is a memory and I / O monster . max_queue_size : Max number of outstanding requests per addr2line instance . addr2line_timeout : Max time ( in seconds ) to wait for a addr2line response . After the timeout the instance will be considered hung and respawned . source_root_path : In some toolchains only the name of the source file is is output without any path information ; disambiguation searches through the source directory specified by |source_root_path| argument for files whose name matches adding the full path information to the output . For example if the toolchain outputs unicode . cc and there is a file called unicode . cc located under |source_root_path| / foo the tool will replace unicode . cc with |source_root_path| / foo / unicode . cc . If there are multiple files with the same name disambiguation will fail because the tool cannot determine which of the files was the source of the symbol . strip_base_path : Rebases the symbols source paths onto |source_root_path| ( i . e replace |strip_base_path| with |source_root_path ) .
function: def __init__(self, elf_file_path, addr2line_path, callback, inlines=False,
        max_concurrent_jobs=None, addr2line_timeout=30, max_queue_size=50,
        source_root_path=None, strip_base_path=None):
      """Args:
        elf_file_path: path of the elf file to be symbolized.
        addr2line_path: path of the toolchain's addr2line binary.
        callback: a callback which will be invoked for each resolved symbol with
            the two args (sym_info, callback_arg). The former is an instance of
            |ELFSymbolInfo| and contains the symbol information. The latter is an
            embedder-provided argument which is passed to SymbolizeAsync().
        inlines: when True, the ELFSymbolInfo will contain also the details about
            the outer inlining functions. When False, only the innermost function
            will be provided.
        max_concurrent_jobs: Max number of addr2line instances spawned.
            Parallelize responsibly, addr2line is a memory and I/O monster.
        max_queue_size: Max number of outstanding requests per addr2line instance.
        addr2line_timeout: Max time (in seconds) to wait for a addr2line response.
            After the timeout, the instance will be considered hung and respawned.
        source_root_path: In some toolchains only the name of the source file is
            is output, without any path information; disambiguation searches
            through the source directory specified by |source_root_path| argument
            for files whose name matches, adding the full path information to the
            output. For example, if the toolchain outputs "unicode.cc" and there
            is a file called "unicode.cc" located under |source_root_path|/foo,
            the tool will replace "unicode.cc" with
            "|source_root_path|/foo/unicode.cc". If there are multiple files with
            the same name, disambiguation will fail because the tool cannot
            determine which of the files was the source of the symbol.
        strip_base_path: Rebases the symbols source paths onto |source_root_path|
            (i.e replace |strip_base_path| with |source_root_path).
      """
      assert(os.path.isfile(addr2line_path)), 'Cannot find ' + addr2line_path
      self.elf_file_path = elf_file_path
      self.addr2line_path = addr2line_path
      self.callback = callback
      self.inlines = inlines
      self.max_concurrent_jobs = (max_concurrent_jobs or
                                  min(multiprocessing.cpu_count(), 4))
      self.max_queue_size = max_queue_size
      self.addr2line_timeout = addr2line_timeout
      self.requests_counter = 0  # For generating monotonic request IDs.
      self._a2l_instances = []  # Up to |max_concurrent_jobs| _Addr2Line inst.
  
      # If necessary, create disambiguation lookup table
      self.disambiguate = source_root_path is not None
      self.disambiguation_table = {}
      self.strip_base_path = strip_base_path
      if self.disambiguate:
        self.source_root_path = os.path.abspath(source_root_path)
        self._CreateDisambiguationTable()
  
      # Create one addr2line instance. More instances will be created on demand
      # (up to |max_concurrent_jobs|) depending on the rate of the requests.
      self._CreateNewA2LInstance()
function_tokens: def __init__ ( self , elf_file_path , addr2line_path , callback , inlines = False , max_concurrent_jobs = None , addr2line_timeout = 30 , max_queue_size = 50 , source_root_path = None , strip_base_path = None ) : assert ( os . path . isfile ( addr2line_path ) ) , 'Cannot find ' + addr2line_path self . elf_file_path = elf_file_path self . addr2line_path = addr2line_path self . callback = callback self . inlines = inlines self . max_concurrent_jobs = ( max_concurrent_jobs or min ( multiprocessing . cpu_count ( ) , 4 ) ) self . max_queue_size = max_queue_size self . addr2line_timeout = addr2line_timeout self . requests_counter = 0 # For generating monotonic request IDs. self . _a2l_instances = [ ] # Up to |max_concurrent_jobs| _Addr2Line inst. # If necessary, create disambiguation lookup table self . disambiguate = source_root_path is not None self . disambiguation_table = { } self . strip_base_path = strip_base_path if self . disambiguate : self . source_root_path = os . path . abspath ( source_root_path ) self . _CreateDisambiguationTable ( ) # Create one addr2line instance. More instances will be created on demand # (up to |max_concurrent_jobs|) depending on the rate of the requests. self . _CreateNewA2LInstance ( )