-
Notifications
You must be signed in to change notification settings - Fork 143
Devel GTK crashstack
Simeon Andreev edited this page Feb 23, 2023
·
1 revision
When eclipse crashes, the stack trace often doesn't contain line number or other details:
E.g:
0 0x00007f40313f0ecc in WTFCrash () at /lib64/libjavascriptcoregtk-4.0.so.18
1 0x00007f4031c93fe1 in WebKit::WebCookieManagerProxy::processPoolDestroyed() () at /lib64/libwebkit2gtk-4.0.so.37
2 0x00007f4031cd939a in WebKit::WebProcessPool::\~WebProcessPool() ()at /lib64/libwebkit2gtk-4.0.so.37
3 0x00007f4031cd9859 in WebKit::WebProcessPool::\~WebProcessPool() ()at /lib64/libwebkit2gtk-4.0.so.37
4 0x00007f4031e91ad0 in webkit_web_c
You can get a more detailed stack trace with gdb, ex: (gdb) bt
0 WTFCrash() () at Source/WTF/wtf/Assertions.cpp:278
1 WebKit::CallbackMap::invalidate(WebKit::CallbackBase::Error)
(error=WebKit::CallbackBase::Error::OwnerWasInvalidated)
/WebKit/UIProcess/GenericCallback.h:225
2 WebKit::WebCookieManagerProxy::processPoolDestroyed() /WebKit/UIProcess/WebCookieManagerProxy.cpp:76
3 WebKit::WebProcessPool::\~WebProcessPool() __in_chrg=.. /Source/WebKit/UIProcess/WebProcessPool.cpp:298
4 WebKit::WebProcessPool::\~WebProcessPool() WebKit/UIProcess/WebProcessPool.cpp:317
5 WTF::ThreadSafeRefCounted<API::Object>::deref() const .. WTF/wtf/ThreadSafeRefCounted.h:71
6 WTF::derefIfNotNull<WebKit::WebProcessPool>(WebKit::WebProcessPool\*)(ptr=../WTF/wtf/RefPtr.h:45
To do so, you need to attach your gdb
to a currently running eclipse:
gdb -p 1234 #where 1234 is pid of eclipse
c #Continue
# < do something to make eclipse crash
bt # print back trace
Note, as you attach gdb
to eclipse, it might complain about missing
debug information and it will prompt you to install them. An example might look like as following:
sudo dnf debuginfo-install\
dbus-libs-1.11.14-1.fc26.x86_64\
libblkid-2.30-1.fc26.x86_64\
libmount-2.30-1.fc26.x86_64\
libsoup-2.58.1-2.fc26.x86_64\
libuuid-2.30-1.fc26.x86_64\
mesa-libwayland-egl-17.1.4-1.fc26.x86_64\
nss-softokn-freebl-3.31.0-1.0.fc26.x86_64\
webkitgtk4-2.18.0-1.fc26.x86_64\
webkitgtk4-jsc-2.18.0-1.fc26.x86_64
You can view available debug info packages via:
sudo dnf --enablerepo=fedora-debuginfo list available
As a note, debuginfo puts the source code into:
/usr/src/debug/ #E.g 'webkitgtk-2.18.0' folder will contain webkitgtk source code.
Folders such as 'webkitgtk' can be imported into eclipse as a project (or link) and you can connect to an instance of eclipse with CDT via "Debug Attached Executable" and debug the C part of an eclipse visually. (See sections on debugging GTK).