Skip to content

Instantly share code, notes, and snippets.

@ruario
Last active August 27, 2019 11:34
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save ruario/efc9c0224a524ea688850da9ae9a091a to your computer and use it in GitHub Desktop.
Recording a backtrace for a tab crash in Vivaldi

Capturing a tab crash involves starting a copy of GDB for every single renderer process (e.g. one for each tab). You will also need to disable one of the key security features of Vivaldi, the sandbox. We understand that many people will not wish to do the following. That is fine, you can skip the following and simply explain the steps you followed in a bug report and leave it at that.

If however, you are an advanced, technical user, understand the ramifications of disabling the sandbox and wish to continue, we would certainly appreciate a crashlog created via the following method.

Since we will be spawning an xterm in a new window for every renderer process (including every tab), it is strongly recommended that you close all but the essential tabs in your session before you begin. Now issue the following to start Vivaldi:

/opt/vivaldi/vivaldi-debug --no-sandbox --renderer-cmd-prefix='xterm -title renderer -e gdb -ex run --args'

Note: Vivaldi will launch at a much slower pace because of the overhead introduced by multiple copies of GDB. You will also notice that a bunch of terminal windows will open (one for each renderer process).

Bring the tab you wish to crash to the foreground and complete any steps to invoke the crash. When the crash happens, you will not see the normal “dead bird” picture associated with a tab crash. Instead that tab will simply freeze and become unresponsive. One of the terminal windows (associated with the crashed tab) will now display something like the following:

Thread X "vivaldi-Y.Y.YYY" received signal SIGSEGV, Segmentation fault.
---Type <return> to continue, or q <return> to quit---

Switch to this terminal, maximise it and press “return” (Enter). Then type

bt

Select the entire backtrace. Now open a text editor and middle click within the text area. This will "paste" the contents of your Primary Buffer. Send it along to us as a reply to the email we sent you after logging your bug report.

You can now quit the browser as normal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment