Index: mojo/devtools/common/README.md |
diff --git a/mojo/devtools/common/README.md b/mojo/devtools/common/README.md |
index 98cfaa47829b2337233d4cf6f6b831b68168810d..4576eae66e703788dc498df93abdcb19b9c36848 100644 |
--- a/mojo/devtools/common/README.md |
+++ b/mojo/devtools/common/README.md |
@@ -1,6 +1,7 @@ |
# Devtools |
-Unopinionated tools for **running**, **debugging** and **testing** Mojo apps. |
+Unopinionated tools for **running**, **debugging**, **testing** and |
+**benchmarking** Mojo apps. |
## Install |
@@ -12,119 +13,15 @@ git clone https://github.com/domokit/devtools.git |
Devtools offers the following tools: |
- - `mojo_run` - shell runner |
+ - `mojo_run` - [documentation](docs/mojo_run.md) shell runner |
+ - `mojo_debug` - [documentation](docs/mojo_debug.md) debugger |
- `mojo_test` - apptest runner |
- - `mojo_debug` - debugger supporting interactive tracing and debugging of a |
- running mojo shell |
+ - `mojo_benchmark` - perf test runner |
Additionally, `remote_adb_setup` script helps to configure adb on a remote |
machine to communicate with a device attached to a local machine, forwarding the |
ports used by `mojo_run`. |
-### Runner |
- |
-`mojo_run` allows you to run a Mojo shell either on the host, or on an attached |
-Android device. |
- |
-```sh |
-mojo_run APP_URL # Run on the host. |
-mojo_run APP_URL --android # Run on Android device. |
-mojo_run "APP_URL APP_ARGUMENTS" # Run an app with startup arguments |
-``` |
- |
-Unless running within a Mojo checkout, we need to indicate the path to the shell |
-binary: |
- |
-```sh |
-mojo_run --shell-path path/to/shell/binary APP_URL |
-``` |
- |
-Some applications are meant to be run embedded in a **window manager**. To run |
-these, you can pass the app url using the `--embed` flag. This will run the |
-window manager and pass the given url to it: |
- |
-```sh |
-mojo_run --embed APP_URL [--android] |
-``` |
- |
-By default, `mojo_run` uses https://core.mojoapps.io/kiosk_wm.mojo as the window |
-manager. You can pass a different window manager url using the |
-`--window-manager` flag to override this. |
- |
-### Debugger |
- |
-`mojo_debug` allows you to interactively inspect a running shell, collect |
-performance traces and attach a gdb debugger. |
- |
-#### Tracing |
-[Performance |
-traces](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool) |
-can either be collected by Mojo Shell during its startup, or collected |
-interactively by `mojo_debug`. |
- |
-To trace the Mojo Shell startup, use the `--trace-startup` flag: |
- |
-```sh |
-mojo_run --trace-startup APP_URL [--android] |
-``` |
- |
-In order to collect traces interactively through `mojo_debug`, make sure that |
-the app being inspected was run with `--debugger` switch. E.g.: |
- |
-```sh |
-mojo_run --debugger APP_URL [--android] |
-``` |
- |
-While Mojo Shell is running, tracing can be started and stopped by these two |
-commands respectively: |
- |
-```sh |
-mojo_debug tracing start |
-mojo_debug tracing stop [result.json] |
-``` |
- |
-Trace files can be then loaded using the trace viewer in Chrome available at |
-`about://tracing`. |
- |
-#### GDB |
-It is possible to inspect a Mojo Shell process using GDB. The `mojo_debug` |
-script can be used to launch GDB and attach it to a running shell process |
-(android only): |
- |
-```sh |
-mojo_debug gdb attach |
-``` |
- |
-Once started, GDB will first stop the Mojo Shell execution, then load symbols |
-from loaded Mojo applications. Please note that this initial step can take some |
-time (up to several minutes in the worst case). |
- |
-After each execution pause, GDB will update the set of loaded symbols based on |
-the selected thread only. If you need symbols for all threads, use the |
-`update-symbols` GDB command: |
-```sh |
-(gdb) update-symbols |
-``` |
- |
-If you only want to update symbols for the current selected thread (for example, |
-after changing threads), use the `current` option: |
-```sh |
-(gdb) update-symbols current |
-``` |
- |
-If you want to debug the startup of your application, you can pass |
-`--wait-for-debugger` to `mojo_run` to have the Mojo Shell stop and wait to be |
-attached by `gdb` before continuing. |
- |
-#### Android crash stacks |
-When Mojo shell crashes on Android ("Unfortunately, Mojo shell has stopped.") |
-due to a crash in native code, `mojo_debug` can be used to find and symbolize |
-the stack trace present in the device log: |
- |
-```sh |
-mojo_debug device stack |
-``` |
- |
## Development |
The library is canonically developed [in the mojo |