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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « docs/testing/layout_tests_in_content_shell.md ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Using breakpad with content shell
2
3 When running layout tests, it is possible to use
4 [breakpad](../../breakpad/breakpad/) to capture stack traces on crashes while
5 running without a debugger attached and with the sandbox enabled.
6
7 ## Setup
8
9 On all platforms, build the target `blink_tests`.
10
11 *** note
12 **Mac:** Add `enable_dsyms = 1` to your
13 [gn build arguments](../../tools/gn/docs/quick_start.md) before building. This
14 slows down linking several minutes, so don't just always set it by default.
15 ***
16
17 *** note
18 **Linux:** Add `use_debug_fission = true` to your
19 [gn build arguments](../../tools/gn/docs/quick_start.md) before building.
20 ***
21
22 Then, create a directory where the crash dumps will be stored:
23
24 * Linux/Mac:
25 ```bash
26 mkdir /tmp/crashes
27 ```
28 * Android:
29 ```bash
30 adb shell mkdir /data/local/tmp/crashes
31 ```
32 * Windows:
33 ```bash
34 mkdir %TEMP%\crashes
35 out\Default\content_shell_crash_service.exe --dumps-dir=%TEMP%\crashes
36 ```
37
38 ## Running content shell with breakpad
39
40 Breakpad can be enabled by passing `--enable-crash-reporter` and
41 `--crash-dumps-dir` to content shell:
42
43 * Linux:
44 ```bash
45 out/Debug/content_shell --enable-crash-reporter \
46 --crash-dumps-dir=/tmp/crashes chrome://crash
47 ```
48 * Mac:
49 ```bash
50 out/Debug/Content\ Shell.app/Contents/MacOS/Content\ Shell \
51 --enable-crash-reporter --crash-dumps-dir=/tmp/crashes chrome://crash
52 ```
53 * Windows:
54 ```bash
55 out\Default\content_shell.exe --enable-crash-reporter ^
56 --crash-dumps-dir=%TEMP%\crashes chrome://crash
57 ```
58 * Android:
59 ```bash
60 build/android/adb_install_apk.py out/Default/apks/ContentShell.apk
61 build/android/adb_content_shell_command_line --enable-crash-reporter \
62 --crash-dumps-dir=/data/local/tmp/crashes chrome://crash
63 build/android/adb_run_content_shell
64 ```
65
66 ## Retrieving the crash dump
67
68 On Linux and Android, we first have to retrieve the crash dump. On Mac and
69 Windows, this step can be skipped.
70
71 * Linux:
72 ```bash
73 components/crash/content/tools/dmp2minidump.py /tmp/crashes/*.dmp /tmp/minidum p
74 ```
75 * Android:
76 ```bash
77 adb pull $(adb shell ls /data/local/tmp/crashes/*) /tmp/chromium-renderer-mini dump.dmp
78 components/breakpad/tools/dmp2minidump /tmp/chromium-renderer-minidump.dmp /tm p/minidump
79 ```
80
81 ## Symbolizing the crash dump
82
83 On all platforms except for Windows, we need to convert the debug symbols to a
84 format that breakpad can understand.
85
86 * Linux:
87 ```bash
88 components/crash/content/tools/generate_breakpad_symbols.py \
89 --build-dir=out/Default --binary=out/Default/content_shell \
90 --symbols-dir=out/Default/content_shell.breakpad.syms --clear --jobs=16
91 ```
92 * Mac:
93 ```bash
94 components/crash/content/tools/generate_breakpad_symbols.py \
95 --build-dir=out/Default \
96 --binary=out/Default/Content\ Shell.app/Contents/MacOS/Content\ Shell \
97 --symbols-dir=out/Default/content_shell.breakpad.syms --clear --jobs=16
98 ```
99 * Android:
100 ```bash
101 components/crash/content/tools/generate_breakpad_symbols.py \
102 --build-dir=out/Default \
103 --binary=out/Default/lib/libcontent_shell_content_view.so \
104 --symbols-dir=out/Default/content_shell.breakpad.syms --clear
105 ```
106
107 Now we can generate a stack trace from the crash dump. Assuming the crash dump
108 is in minidump.dmp:
109
110 * Linux/Android/Mac:
111 ```bash
112 out/Default/minidump_stackwalk minidump.dmp out/Debug/content_shell.breakpad.s yms
113 ```
114 * Windows:
115 ```bash
116 "c:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\cdb.exe" ^
117 -y out\Default -c ".ecxr;k30;q" -z minidump.dmp
118 ```
OLDNEW
« 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