| # How to enable host (server) adb traces for bug reports: |
| |
| > :warning: **This will enable tracing permanently**. These instructions are |
| well suited for tools managing adb lifecycle (like Android Studio). |
| Once done, it is recommended to undoing the changes made here and then |
| restarting adb via `adb kill-server ; adb server`. |
| |
| ## 1. Set the environment variable |
| |
| ### On MacOS/Linux |
| |
| Add the following line to `~/.bashrc` (.zshrc on MacOS 10.15+:W |
| ). |
| |
| ``` |
| ADB_TRACE=all |
| ``` |
| |
| ### On Windows |
| |
| Add the global variable via the `System Properties` window. |
| In the `Advanced` tab, click on `Environment Variables`. Add the Variable/ |
| Value to the `User variables` list. Alternatively, you can bring up the same |
| window by searching for "Edit Environment Variables". |
| |
| ## 2. Cycle adb server |
| |
| Shutdown adb server via command `adb kill-server`. Close the current terminal, |
| open a new one, and start adb server via `adb server`. |
| |
| ## 3. Locate the log files |
| |
| ### On MacOS/Linux |
| |
| The log files are located in `$TMPDIR` which is almost always `/tmp`. Log files |
| are created on a per uid basis, `adb.<UID>.log`. |
| |
| ### On Windows |
| |
| The log files are located in `%TEMP%` which is often `C:\Users\<USERNAME>\AppData\Local\Temp`. |
| The filename is always `adb.log`. |
| |
| # How to capture device-side logs for adb bug reports (needs root privilege): |
| |
| Device-side (adbd) debugging is best accomplished from a post-mortem standpoint, because real-time |
| debugging is impossible given the fact that adb itself is the underlying |
| debugging channel. |
| |
| ## 1. Set trace mask on and restart the daemon |
| Device logs tend to be noisy so reproduce the problem |
| as soon as possible, collect the logs and turn tracing off. |
| |
| $ adb shell setprop persist.adb.trace_mask 1 |
| $ adb shell pkill adbd |
| |
| ## 2. Collect the logs using `adb pull` and turn off tracing |
| $ adb shell |
| sargo:/ # cd /data/adb |
| sargo:/data/adb # ls -al |
| total 23 |
| drwx------ 2 root root 3488 2022-02-08 18:04 . |
| drwxrwx--x 49 system system 4096 2022-01-18 12:13 .. |
| -rw------- 1 root root 8521 2022-02-08 18:05 adb-2022-02-08-18-04-49-18527 |
| |
| From the host: |
| $adb pull /data/adb/adb-2022-02-08-18-04-49-18527 |
| |
| ## Error(s) that you may run into, and resolution: |
| You may run into errors either during `adb shell` or `adb pull`. |
| Make sure you are running as root. |
| |
| $ adb shell setprop persist.adb.trace_mask 0 |
| Failed to set property 'persist.adb.trace_mask' to '0'. |
| See dmesg for error reason. |
| $ adb root |
| $ adb shell setprop persist.adb.trace_mask 0 |
| |