Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2589)

Unified Diff: docs/testing/using_breakpad_with_content_shell.md

Issue 2488463004: Move sub-pages of "Layout Tests" from Google Sites to Markdown. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « docs/testing/layout_tests_in_content_shell.md ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/testing/using_breakpad_with_content_shell.md
diff --git a/docs/testing/using_breakpad_with_content_shell.md b/docs/testing/using_breakpad_with_content_shell.md
new file mode 100644
index 0000000000000000000000000000000000000000..0fcfadfbbfd02bbbdd18c9b3bb0052ac66ec35c1
--- /dev/null
+++ b/docs/testing/using_breakpad_with_content_shell.md
@@ -0,0 +1,118 @@
+# Using breakpad with content shell
+
+When running layout tests, it is possible to use
+[breakpad](../../breakpad/breakpad/) to capture stack traces on crashes while
+running without a debugger attached and with the sandbox enabled.
+
+## Setup
+
+On all platforms, build the target `blink_tests`.
+
+*** note
+**Mac:** Add `enable_dsyms = 1` to your
+[gn build arguments](../../tools/gn/docs/quick_start.md) before building. This
+slows down linking several minutes, so don't just always set it by default.
+***
+
+*** note
+**Linux:** Add `use_debug_fission = true` to your
+[gn build arguments](../../tools/gn/docs/quick_start.md) before building.
+***
+
+Then, create a directory where the crash dumps will be stored:
+
+* Linux/Mac:
+ ```bash
+ mkdir /tmp/crashes
+ ```
+* Android:
+ ```bash
+ adb shell mkdir /data/local/tmp/crashes
+ ```
+* Windows:
+ ```bash
+ mkdir %TEMP%\crashes
+ out\Default\content_shell_crash_service.exe --dumps-dir=%TEMP%\crashes
+ ```
+
+## Running content shell with breakpad
+
+Breakpad can be enabled by passing `--enable-crash-reporter` and
+`--crash-dumps-dir` to content shell:
+
+* Linux:
+ ```bash
+ out/Debug/content_shell --enable-crash-reporter \
+ --crash-dumps-dir=/tmp/crashes chrome://crash
+ ```
+* Mac:
+ ```bash
+ out/Debug/Content\ Shell.app/Contents/MacOS/Content\ Shell \
+ --enable-crash-reporter --crash-dumps-dir=/tmp/crashes chrome://crash
+ ```
+* Windows:
+ ```bash
+ out\Default\content_shell.exe --enable-crash-reporter ^
+ --crash-dumps-dir=%TEMP%\crashes chrome://crash
+ ```
+* Android:
+ ```bash
+ build/android/adb_install_apk.py out/Default/apks/ContentShell.apk
+ build/android/adb_content_shell_command_line --enable-crash-reporter \
+ --crash-dumps-dir=/data/local/tmp/crashes chrome://crash
+ build/android/adb_run_content_shell
+ ```
+
+## Retrieving the crash dump
+
+On Linux and Android, we first have to retrieve the crash dump. On Mac and
+Windows, this step can be skipped.
+
+* Linux:
+ ```bash
+ components/crash/content/tools/dmp2minidump.py /tmp/crashes/*.dmp /tmp/minidump
+ ```
+* Android:
+ ```bash
+ adb pull $(adb shell ls /data/local/tmp/crashes/*) /tmp/chromium-renderer-minidump.dmp
+ components/breakpad/tools/dmp2minidump /tmp/chromium-renderer-minidump.dmp /tmp/minidump
+ ```
+
+## Symbolizing the crash dump
+
+On all platforms except for Windows, we need to convert the debug symbols to a
+format that breakpad can understand.
+
+* Linux:
+ ```bash
+ components/crash/content/tools/generate_breakpad_symbols.py \
+ --build-dir=out/Default --binary=out/Default/content_shell \
+ --symbols-dir=out/Default/content_shell.breakpad.syms --clear --jobs=16
+ ```
+* Mac:
+ ```bash
+ components/crash/content/tools/generate_breakpad_symbols.py \
+ --build-dir=out/Default \
+ --binary=out/Default/Content\ Shell.app/Contents/MacOS/Content\ Shell \
+ --symbols-dir=out/Default/content_shell.breakpad.syms --clear --jobs=16
+ ```
+* Android:
+ ```bash
+ components/crash/content/tools/generate_breakpad_symbols.py \
+ --build-dir=out/Default \
+ --binary=out/Default/lib/libcontent_shell_content_view.so \
+ --symbols-dir=out/Default/content_shell.breakpad.syms --clear
+ ```
+
+Now we can generate a stack trace from the crash dump. Assuming the crash dump
+is in minidump.dmp:
+
+* Linux/Android/Mac:
+ ```bash
+ out/Default/minidump_stackwalk minidump.dmp out/Debug/content_shell.breakpad.syms
+ ```
+* Windows:
+ ```bash
+ "c:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\cdb.exe" ^
+ -y out\Default -c ".ecxr;k30;q" -z minidump.dmp
+ ```
« no previous file with comments | « docs/testing/layout_tests_in_content_shell.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698