Flutter Engine
The Flutter Engine
|
Public Member Functions | |
def | __init__ (self, symbolizer) |
def | EnqueueRequest (self, addr, callback_arg) |
def | WaitForIdle (self) |
def | WaitForNextSymbolInQueue (self) |
def | ProcessAllResolvedSymbolsInQueue (self) |
def | RecycleIfNecessary (self) |
def | Terminate (self) |
def | first_request_id (self) |
Static Public Member Functions | |
def | StdoutReaderThread (process_pipe, queue, inlines) |
Public Attributes | |
queue_size | |
Static Public Attributes | |
SYM_ADDR_RE = re.compile(r'([^:]+):(\?|\d+).*') | |
A python wrapper around an addr2line instance. The communication with the addr2line process looks as follows: [STDIN] [STDOUT] (from addr2line's viewpoint) > f001111 > f002222 < Symbol::Name(foo, bar) for f001111 < /path/to/source/file.c:line_number > f003333 < Symbol::Name2() for f002222 < /path/to/source/file.c:line_number < Symbol::Name3() for f003333 < /path/to/source/file.c:line_number
Definition at line 207 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.__init__ | ( | self, | |
symbolizer | |||
) |
Definition at line 225 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.EnqueueRequest | ( | self, | |
addr, | |||
callback_arg | |||
) |
Pushes an address to addr2line's stdin (and keeps track of it).
Definition at line 247 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.first_request_id | ( | self | ) |
Returns the request_id of the oldest pending request in the queue.
Definition at line 464 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.ProcessAllResolvedSymbolsInQueue | ( | self | ) |
Consumes all the addr2line output lines produced (without blocking).
Definition at line 299 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.RecycleIfNecessary | ( | self | ) |
Restarts the process if it has been used for too long. A long running addr2line process will consume excessive amounts of memory without any gain in performance.
Definition at line 310 of file elf_symbolizer.py.
|
static |
The poller thread fn, which moves the addr2line stdout to the |queue|. This is the only piece of code not running on the main thread. It merely writes to a Queue, which is thread-safe. In the case of inlines, it detects the ??,??:0 marker and sends the lines atomically, such that the main thread always receives all the lines corresponding to one symbol in one shot.
Definition at line 433 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.Terminate | ( | self | ) |
Kills the underlying addr2line process. The poller |_thread| will terminate as well due to the broken pipe.
Definition at line 318 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.WaitForIdle | ( | self | ) |
Waits until all the pending requests have been symbolized.
Definition at line 255 of file elf_symbolizer.py.
def elf_symbolizer.ELFSymbolizer.Addr2Line.WaitForNextSymbolInQueue | ( | self | ) |
Waits for the next pending request to be symbolized.
Definition at line 260 of file elf_symbolizer.py.
elf_symbolizer.ELFSymbolizer.Addr2Line.queue_size |
Definition at line 235 of file elf_symbolizer.py.
|
static |
Definition at line 223 of file elf_symbolizer.py.