OLD | NEW |
---|---|
1 # Tips for debugging on Linux | 1 # Tips for debugging on Linux |
2 | 2 |
3 This page is for Chromium-specific debugging tips; learning how to run gdb is | 3 This page is for Chromium-specific debugging tips; learning how to run gdb is |
4 out of scope. | 4 out of scope. |
5 | 5 |
6 [TOC] | 6 [TOC] |
7 | 7 |
8 ## Symbolized stack trace | 8 ## Symbolized stack trace |
9 | 9 |
10 The sandbox can interfere with the internal symbolizer. Use `--no-sandbox` (but | 10 The sandbox can interfere with the internal symbolizer. Use `--no-sandbox` (but |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
263 `build/gdb-add-index out/Debug/browser_tests`) | 263 `build/gdb-add-index out/Debug/browser_tests`) |
264 | 264 |
265 Only makes sense if you run the binary multiple times or maybe if you use the | 265 Only makes sense if you run the binary multiple times or maybe if you use the |
266 component build since most `.so` files won't require reindexing on a rebuild. | 266 component build since most `.so` files won't require reindexing on a rebuild. |
267 | 267 |
268 See | 268 See |
269 https://groups.google.com/a/chromium.org/forum/#!searchin/chromium-dev/gdb-add-i ndex/chromium-dev/ELRuj1BDCL4/5Ki4LGx41CcJ | 269 https://groups.google.com/a/chromium.org/forum/#!searchin/chromium-dev/gdb-add-i ndex/chromium-dev/ELRuj1BDCL4/5Ki4LGx41CcJ |
270 for more info. | 270 for more info. |
271 | 271 |
272 You can improve GDB load time significantly at the cost of link time by | 272 You can improve GDB load time significantly at the cost of link time by |
273 plitting symbols from the object files. In GN, set `use_debug_fission=false` in | 273 plitting symbols from the object files. In GN, set `use_debug_fission=false` in |
Dirk Pranke
2016/04/11 21:51:07
nit: typo s/plitting/splitting/.
| |
274 your "gn args". In GYP add `linux_use_debug_fission=0` to your `GYP_DEFINES`. | 274 your "gn args". |
275 | 275 |
276 ## Core files | 276 ## Core files |
277 | 277 |
278 `ulimit -c unlimited` should cause all Chrome processes (run from that shell) to | 278 `ulimit -c unlimited` should cause all Chrome processes (run from that shell) to |
279 dump cores, with the possible exception of some sandboxed processes. | 279 dump cores, with the possible exception of some sandboxed processes. |
280 | 280 |
281 Some sandboxed subprocesses might not dump cores unless you pass the | 281 Some sandboxed subprocesses might not dump cores unless you pass the |
282 `--allow-sandbox-debugging` flag. | 282 `--allow-sandbox-debugging` flag. |
283 | 283 |
284 If the problem is a freeze rather than a crash, you may be able to trigger a | 284 If the problem is a freeze rather than a crash, you may be able to trigger a |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
421 | 421 |
422 You can use valgrind on chrome and/or on the renderers e.g | 422 You can use valgrind on chrome and/or on the renderers e.g |
423 `valgrind --smc-check=all ../sconsbuild/Debug/chrome` | 423 `valgrind --smc-check=all ../sconsbuild/Debug/chrome` |
424 or by passing valgrind as the argument to `--render-cmd-prefix`. | 424 or by passing valgrind as the argument to `--render-cmd-prefix`. |
425 | 425 |
426 Beware that there are several valgrind "false positives" e.g. pickle, sqlite and | 426 Beware that there are several valgrind "false positives" e.g. pickle, sqlite and |
427 some instances in webkit that are ignorable. On systems with prelink and address | 427 some instances in webkit that are ignorable. On systems with prelink and address |
428 space randomization (e.g. Fedora), you may also see valgrind errors in libstdc++ | 428 space randomization (e.g. Fedora), you may also see valgrind errors in libstdc++ |
429 on startup and in gnome-breakpad. | 429 on startup and in gnome-breakpad. |
430 | 430 |
431 Valgrind doesn't seem to play nice with tcmalloc. To disable tcmalloc run GYP | 431 Valgrind doesn't seem to play nice with tcmalloc. To disable tcmalloc set the GN arg: |
432 | 432 |
433 $ cd $CHROMIUM_ROOT/src | 433 use_allocator="none" |
434 $ build/gyp_chromium -Duse_allocator=none | |
435 | 434 |
436 and rebuild. | 435 and rebuild. |
437 | 436 |
438 ## Profiling | 437 ## Profiling |
439 | 438 |
440 See | 439 See |
441 https://sites.google.com/a/chromium.org/dev/developers/profiling-chromium-and-we bkit | 440 https://sites.google.com/a/chromium.org/dev/developers/profiling-chromium-and-we bkit |
442 and [Linux Profiling](linux_profiling.md). | 441 and [Linux Profiling](linux_profiling.md). |
443 | 442 |
444 ## i18n | 443 ## i18n |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
538 [Running layout tests on Linux](layout_tests_linux.md) page. | 537 [Running layout tests on Linux](layout_tests_linux.md) page. |
539 | 538 |
540 If you need to test something with hardware accelerated compositing | 539 If you need to test something with hardware accelerated compositing |
541 (e.g., compiz), you can use `Xgl` (`sudo apt-get install xserver-xgl`). E.g.: | 540 (e.g., compiz), you can use `Xgl` (`sudo apt-get install xserver-xgl`). E.g.: |
542 | 541 |
543 Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer -screen 1024x768 | 542 Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer -screen 1024x768 |
544 | 543 |
545 ## Mozilla Tips | 544 ## Mozilla Tips |
546 | 545 |
547 https://developer.mozilla.org/en/Debugging_Mozilla_on_Linux_FAQ | 546 https://developer.mozilla.org/en/Debugging_Mozilla_on_Linux_FAQ |
OLD | NEW |