| Summary: | drkonqi assumes build-id presence | ||
|---|---|---|---|
| Product: | [Applications] drkonqi | Reporter: | Sam James <sam> |
| Component: | general | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | asturm, sitter |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Sam James
2025-02-10 09:47:00 UTC
Looking at https://develop.sentry.dev/sdk/data-model/event-payloads/debugmeta/#elf-images, it looks like we need to calculate our own when a build-id is missing: ``` code_id Optional. Identifier of the dynamic library or executable. If the program was compiled with a relatively recent compiler, this should be the hex representation of the NT_GNU_BUILD_ID program header (type PT_NOTE), or the value of the .note.gnu.build-id note section (type SHT_NOTE). Otherwise, leave this value empty. ``` and ``` debug_id Required. Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that identifier. Spaces are inserted for readability, note the byte order of the first fields: [...] If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the .text section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order). ``` Prompted by both this bug and the build-id part of https://mail.kde.org/pipermail/distributions/2025-April/001574.html: I've been meaning to do this for some time, but written up build-id for Gentoo and will hopefully work on that soon (https://bugs.gentoo.org/953869). That said, having some minimal functionality without build-ids would still be appreciated until we get time to deploy that, and also so that drkonqi does something useful with default GCC (and Clang) builds. |