sorB 3da363517f
Some checks failed
Docker / Docker Buildx (push) Has been cancelled
Build Debian package / Build package (release) Has been cancelled
Build and Deploy / prepare (release) Has been cancelled
Deploy release / Deploy to Cloudflare Pages (release) Has been cancelled
Build and Deploy / Trigger Pro pipeline (release) Has been cancelled
Build and Deploy / Windows arm64 (release) Has been cancelled
Build and Deploy / Windows x64 (release) Has been cancelled
Build and Deploy / macOS (release) Has been cancelled
Build and Deploy / Linux amd64 (sqlcipher static) (release) Has been cancelled
Build and Deploy / Linux arm64 (sqlcipher static) (release) Has been cancelled
Build and Deploy / ${{ needs.prepare.outputs.deploy == 'true' && 'Deploy' || 'Deploy (dry-run)' }} (release) Has been cancelled
Build and Deploy / Deploy builds to ESS (release) Has been cancelled
feat: show call participants in room list (Discord-style)
2026-05-10 14:25:35 +02:00

2.0 KiB

Using gdb against Element-Desktop

Occasionally it is useful to be able to connect to a running Element-Desktop with gdb, or to analayze a coredump. For this, you will need debug symbols.

  1. If you don't already have the right version of Element-Desktop (eg because you are analyzing someone else's coredump), download and unpack the tarball from https://packages.element.io/desktop/install/linux/. If it was a nightly, your best bet may be to download the deb from https://packages.element.io/debian/pool/main/e/element-nightly/ and unpack it.

  2. Figure out which version of Electron your Element-Desktop is based on. The best way to do this is to figure out the version of Element-Desktop, then look at package.json for the corresponding version. There will be an entry within dependencies of electron: the value will tell you the version of Electron that was used for that version of Element-Desktop.

  3. Go to Electron's releases page and find the version you just identified. Under "Assets", download electron-v<version>-linux-x64-debug.zip (or, the -debug zip corresponding to your architecture).

  4. The debug zip has a structure like:

    .
    ├── debug
    │   ├── chrome_crashpad_handler.debug
    │   ├── electron.debug
    │   ├── libEGL.so.debug
    │   ├── libffmpeg.so.debug
    │   ├── libGLESv2.so.debug
    │   └── libvk_swiftshader.so.debug
    ├── LICENSE
    ├── LICENSES.chromium.html
    └── version
    

    Take all the contents of debug, and copy them into the Element-Desktop directory, so that electron.debug is alongside the element-desktop-nightly executable.

  5. You now have a thing you can gdb as normal, either as gdb --args element-desktop-nightly, or gdb element-desktop-nightly core.