From 8565e72e637c2d98d592aabe1a15fff8d9ace6ab Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Mon, 15 Mar 2021 17:54:25 -0700 Subject: [PATCH] chore: consolidate browser cheatsheets (#5832) --- browser_patches/README.md | 77 +++++++++++++++++++++++++++ browser_patches/firefox/cheatsheet.md | 28 ---------- browser_patches/webkit/cheatsheet.md | 27 ---------- 3 files changed, 77 insertions(+), 55 deletions(-) delete mode 100644 browser_patches/firefox/cheatsheet.md delete mode 100644 browser_patches/webkit/cheatsheet.md diff --git a/browser_patches/README.md b/browser_patches/README.md index 7c4ac0132e122..0a61461ba996e 100644 --- a/browser_patches/README.md +++ b/browser_patches/README.md @@ -1,3 +1,16 @@ +- [Contributing Browser Patches](#Contributing-browser-patches) + * [1. Setting up local browser checkout](#1-setting-up-local-browser-checkout) + * [2. Developing a new change](#2-developing-a-new-change) + * [3. Exporting your change to playwright repo](#3-exporting-your-change-to-playwright-repo) + * [4. Rolling Playwright to the new browser build](#4-rolling-playwright-to-the-new-browser-build) +- [Cheatsheet](#cheatsheet) + * [Firefox](#firefox) + - [stack trace](#stack-trace) + - [logging](#logging) + * [WebKit](#webkit) + - [Debugging Windows](#degugging-windows) + - [Enable core dumps on Linux](#enable-core-dumps-on-linux) + # Contributing Browser Patches Firefox and WebKit have additional patches atop to expose necessary capabilities. @@ -63,3 +76,67 @@ Once the patch has been committed, the build bots will kick in, compile and uplo ```sh $ node utils/roll_browser.js chromium 123456 ``` + +# Cheatsheet + +## FireFox + +#### Stack trace + +In `//mozglue/misc/StackWalk.cpp` add + +```c++ +#define MOZ_DEMANGLE_SYMBOLS 1 +``` + +In native code use + +```c++ +nsTraceRefcnt::WalkTheStack(stderr); +``` + +If the stack trace is still mangled `cat` it to `tools/rb/fix_linux_stack.py` + +#### Logging + +Upstream documentation: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Gecko_Logging + +```bash +MOZ_LOG=nsHttp:5 +``` + +Module name is a string passed to the `mozilla::LazyLogModule` of the corresponding component, e.g.: + +```c++ +LazyLogModule gHttpLog("nsHttp"); +``` + +## WebKit + +#### Debugging windows + +In `Source\WTF\wtf\win\DbgHelperWin.cpp` replace + +```#if !defined(NDEBUG)``` with ```#if 1``` + +Then regular `WTFReportBacktrace()` works. + +#### Enable core dumps on Linux + +```bash +mkdir -p /tmp/coredumps +sudo bash -c 'echo "/tmp/coredumps/core-pid_%p.dump" > /proc/sys/kernel/core_pattern' +ulimit -c unlimited +``` + +Then to read stack traces run the following command: +```bash +# To find out crashing process name +file core-pid_29652.dump +# Point gdb to the local binary of the crashed process and the core file +gdb $HOME/.cache/ms-playwright/webkit-1292/minibrowser-gtk/WebKitWebProcess core-pid_29652 +# Inside gdb update .so library search path to the local one +set solib-search-path /home/yurys/.cache/ms-playwright/webkit-1292/minibrowser-gtk +# Finally print backtrace +bt +``` diff --git a/browser_patches/firefox/cheatsheet.md b/browser_patches/firefox/cheatsheet.md deleted file mode 100644 index c53f55abde200..0000000000000 --- a/browser_patches/firefox/cheatsheet.md +++ /dev/null @@ -1,28 +0,0 @@ -### Debugging - -#### Stack trace - -It `mozglue/misc/StackWalk.cpp` add - -```c++ -#define MOZ_DEMANGLE_SYMBOLS 1 -``` - -In native code use - -```c++ -nsTraceRefcnt::WalkTheStack(stderr); -``` - -If the stack trace is still mangled `cat` it to `tools/rb/fix_linux_stack.py` - -#### [Logging](https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Gecko_Logging) - -```bash -MOZ_LOG=nsHttp:5 -``` -Module name is a string passed to the `mozilla::LazyLogModule` of the corresponding component, e.g.: - -```c++ -LazyLogModule gHttpLog("nsHttp"); -``` diff --git a/browser_patches/webkit/cheatsheet.md b/browser_patches/webkit/cheatsheet.md deleted file mode 100644 index 96c7f4d35dd4d..0000000000000 --- a/browser_patches/webkit/cheatsheet.md +++ /dev/null @@ -1,27 +0,0 @@ -### Debugging windows - -In `Source\WTF\wtf\win\DbgHelperWin.cpp` replace - -```#if !defined(NDEBUG)``` with ```#if 1``` - -Then regular `WTFReportBacktrace()` works. - -### Enable core dumps on Linux - -```bash -mkdir -p /tmp/coredumps -sudo bash -c 'echo "/tmp/coredumps/core-pid_%p.dump" > /proc/sys/kernel/core_pattern' -ulimit -c unlimited -``` - -Then to read stack traces run the following command: -```bash -# To find out crashing process name -file core-pid_29652.dump -# Point gdb to the local binary of the crashed process and the core file -gdb $HOME/.cache/ms-playwright/webkit-1292/minibrowser-gtk/WebKitWebProcess core-pid_29652 -# Inside gdb update .so library search path to the local one -set solib-search-path /home/yurys/.cache/ms-playwright/webkit-1292/minibrowser-gtk -# Finally print backtrace -bt -``` \ No newline at end of file