| 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 splitting symbols from the object files. In GN, set `use_debug_fission=false` in |
| 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 |