Open Bug 1735897 Opened 4 years ago Updated 3 months ago

When symbolicating Android system libraries, transfer the entire file to the host machine and dump symbols on the host machine

Categories

(DevTools :: Performance Tools (Profiler/Timeline), task, P3)

task

Tracking

(Not tracked)

People

(Reporter: mstange, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [fxp-profiler])

When we capture a profile from Android (via about:debugging) and symbolicate it, the symbols come from the following sources:

  • "Official Firefox build" symbols come from the Mozilla symbol server.
  • "Local Firefox build" symbols come from an objdir on the host machine, and the symbols are dumped on the host machine with profiler-get-symbols.
  • Android system library symbols are obtained via the debugger protocol (with the "getSymbolTable" method of the perf actor), which causes symbols to be dumped on the Android device using code in profiler/rust-helper.

So this means that symbol dumping on the host and symbol dumping on the device is performed using different code. Dumping on the host (using profiler-get-symbols) has the following extra features:

  • It can read MiniDebugInfo symbol tables, see bug 1735404.
  • In the future, we want to obtain assembly code (or maybe just the raw code bytes) from the symbolication API. This will be implemented in profiler-get-symbols.

So it would be great if we could just use profiler-get-symbols on the host all the time, even if the library is on the phone.

To do this, we need a perf actor method which efficiently transmits the entire library file to the host, probably using bulk send (see bug 1581963 comment 5).

We'll also want some form of caching on the host, so that we don't have to transfer the file repeatedly.

The name of the new method could be getSharedLibraryFileRaw.

Priority: -- → P3

We also want to remove calls to getSymbolTable from the front-end. We can only do this if everything supports symbolication via querySymbolicationApi.

Blocks: 1616887
See Also: → 1970121
You need to log in before you can comment on or make changes to this bug.