On 8/8/24 07:34, Magno Lomardo wrote:
Yes please! I've searched through the docs for exactly these details in the past. Specifically what is needed: `find_package( KF5 Crash )`, `target_link_libraries( <target> KF5::Crash )`, and `KCrash::initialize()` after AboutData along with which parts of AboutData matter. A lot of "best practices" are missing, and using other applications as examples can be flaky because they may be way out of date too.Hi!Would be possible to put this info into the docs, if it isn't already there? I believe this is really important and deserves a spotlight on the docs. Thoughts on that?
Thanks, -Amber
Regards, Magno LomardoOn Thu, Aug 8, 2024 at 11:24 AM Nicolas Fella <nicolas.fe...@gmx.de <mailto:nicolas.fe...@gmx.de>> wrote:Hi, TL;DR: Call KCrash::initialize() after setting up KAboutData crash reporting via DrKonqi to Bugzilla and Sentry is powered by the KCrash framework, which acts as the crash handler inside the application. To install the crash handler you need to call KCrash::initialize() in your application's main function. Since the crash handler relies on information from KAboutData you should do it after the call to KAboutData::setApplicationData(). For best results make sure to include the application version in the about data. You can verify that it is working correctly by doing "killall -SEGV myapp" and checking that DrKonqi appears and lets you submit a report. Why am I sending this now? Some background: In KF5 linking against KF5::Crash would automatically install the crash handler for your application even without the explicity KCrash::initalize(). This approach had some caveats: - It doesn't work when linking with -as-needed, which is the default in some distributions - Similarly it won't work with static builds - It can result in the crash handler being installed for non-KDE apps that happen to load KF5::Crash, e.g. via out platform plugins For these reasons for KF6 we dropped this approach (see https://invent.kde.org/frameworks/kcrash/-/merge_requests/51 <https://invent.kde.org/frameworks/kcrash/-/merge_requests/51>), meaning one must explicitly opt into our crash handling. A large number of our applications does that already, but there's also a significant number that doesn't. Please check your applications for that. Cheers Nico
-- Attached is my PGP public key. Primary key fingerprint: 4407 5FB3 3665 0970 3B75 CD31 7DA1 7F4D AC46 7943 If you have a PGP key (and a minute to spare) please send it in reply to this email. If you have no idea what PGP is, feel free to ignore all this gobbledegook.
OpenPGP_0x7DA17F4DAC467943.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature