wiki:WebKitFlatpakSDK/DebugWithRR

Version 2 (modified by fred.wang@free.fr, 4 years ago) ( diff )

Add alternative way by running in the flatpack shell, as well as how to run the test runner

Debugging with RR

rr is a lightweight tool for recording, replaying and debugging execution of applications (trees of processes and threads). Debugging extends gdb with very efficient reverse-execution, which in combination with standard gdb/x86 features like hardware data watchpoints, makes debugging much more fun.

Using RR with the SDK

The Flatpak SDK already provides RR. You don't need to install it on your host machine. To record a trace, use this command:

$ WEBKIT_MINI_BROWSER_PREFIX=rr Tools/Scripts/run-minibrowser --gtk ...

You don't necessarily need a debug build, but it's better to have one.

To replay a trace or simply run rr:

$ Tools/Scripts/webkit-flatpak -c rr <rr arguments here>
...
$ Tools/Scripts/webkit-flatpak -c rr ps                                                                                                                                                            14:32:37
PID     PPID    EXIT    CMD
35      --      0       /app/webkit/WebKitBuild/Debug/bin/MiniBrowser http://192.168.1.44/test.html
43      35      -5      /app/webkit/WebKitBuild/Debug/bin/WebKitWebProcess 7 24
44      35      0       /app/webkit/WebKitBuild/Debug/bin/WebKitNetworkProcess 8 24

Alternatively, you can run rr from the flatpack shell:

$ Tools/Scripts/webkit-flatpak --gtk ...
[📦🌐🐱 org.webkit.Sdk WebKit]$ rr record /app/webkit/WebKitBuild/GTK/Debug/bin/MiniBrowser ...
...
[📦🌐🐱 org.webkit.Sdk WebKit]$ rr ps
...
[📦🌐🐱 org.webkit.Sdk WebKit]$ TEST_RUNNER_TEST_PLUGIN_PATH= rr record /app/webkit/WebKitBuild/GTK/Debug/bin/WebKitTestRunner ...
...
[📦🌐🐱 org.webkit.Sdk WebKit]$ rr replay
...
Note: See TracWiki for help on using the wiki.