| 1 | [[PageOutline]] |
| 2 | |
| 3 | = Debugging WebKitGTK+ = |
| 4 | |
| 5 | You need a compilation with symbols (''take it easy as it'll take some time/hours''): |
| 6 | {{{ |
| 7 | #!sh |
| 8 | $ Tools/Scripts/build-webkit --gtk --debug |
| 9 | }}} |
| 10 | |
| 11 | On 32-bits arch it is quite unlikely this build will succeed. If you need a build with debug symbols but still without ASSERTs enabled you can try these options: |
| 12 | {{{ |
| 13 | #!sh |
| 14 | $ Tools/Scripts/build-webkit --gtk --disable-fast-malloc --enable-debug-symbols=full --disable-optimizations |
| 15 | }}} |
| 16 | |
| 17 | In other to run ''GtkLauncher'' under ''gdb'' you should use a ''jhbuild'' shell and run ''gdb'' normally or use the ''jhbuild-wrapper'' as follows: |
| 18 | {{{ |
| 19 | #!sh |
| 20 | $ Tools/jhbuild/jhbuild-wrapper --gtk run gdb --args WebKitBuild/Debug/Programs/GtkLauncher --debug |
| 21 | }}} |
| 22 | |
| 23 | == Debugging multimedia stuff == |
| 24 | |
| 25 | You can use the environment variable ''GST_DEBUG'': |
| 26 | {{{ |
| 27 | #!sh |
| 28 | $ export GST_DEBUG="webkit*:5" |
| 29 | }}} |
| 30 | |
| 31 | To debug a multimedia test inside DRT (Dump Render Tree): |
| 32 | {{{ |
| 33 | #!sh |
| 34 | $ Tools/Scripts/run-webkit-tests --gtk --additional-env-var=GST_DEBUG=webkit*:5 --additional-env-var=GST_DEBUG_NO_COLOR=1 http/tests/media/video-play-stall.html |
| 35 | }}} |
| 36 | |
| 37 | == Debugging tests == |
| 38 | |
| 39 | * In order to run tests inside the @jhbuild@ shell, these two environment variables must be set: |
| 40 | {{{ |
| 41 | #!sh |
| 42 | $ export TEST_RUNNER_TEST_PLUGIN_PATH=$WEBKIT_HOME/WebKitBuild/Release/Libraries/.libs/ |
| 43 | $ export TEST_RUNNER_INJECTED_BUNDLE_FILENAME=$WEBKIT_HOME/WebKitBuild/Release/Libraries/libTestRunnerInjectedBundle.la |
| 44 | }}} |
| 45 | |
| 46 | == Debugging issues == |
| 47 | |
| 48 | * Some times when running the WebKitTestRunner (WK2) you can see linking errors like the following one: |
| 49 | {{{ |
| 50 | #!sh |
| 51 | |
| 52 | (lt-WebKitWebProcess:3392): WARNING **: Error loading the injected bundle (/home/javi/devel/WebKit/webkit.git/WebKitBuild/Debug/Libraries/libTestRunnerInjectedBundle.la): /home/javi/devel/WebKit/webkit.git/WebKitBuild/Debug/Libraries/.libs/libTestRunnerInjectedBundle.so: undefined symbol: _ZTVN7leveldb10ComparatorE |
| 53 | }}} |
| 54 | * One possible cause of such errors are missing symbols in the '''Source/autotools/symbols.filter'''. These symbols are automatically exposed in the by the '''libWebCoreInternals''' library via tags. Such library expose some symbols for testing purposes, just like the WTR application does. |
| 55 | * The symbols.filter should be updated by a fresh checkout, but if that's not the case, it's possible to workaround the issue by manually adding the missing symbols to the file. |