{"id":25836061,"url":"https://github.com/bugsplat-git/my-qt-crasher","last_synced_at":"2025-03-01T01:39:00.298Z","repository":{"id":37906183,"uuid":"256804082","full_name":"BugSplat-Git/my-qt-crasher","owner":"BugSplat-Git","description":"😽🖥💥 Example MacOS, Windows, and Linux Qt application integrated with Crashpad.","archived":false,"fork":false,"pushed_at":"2024-07-09T12:34:01.000Z","size":170022,"stargazers_count":62,"open_issues_count":1,"forks_count":15,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-07-09T14:59:33.692Z","etag":null,"topics":["breakpad","bugsplat","chromium","crash","crashpad","dumpsyms","minidump","minidumpstackwalk","qt","report","sym","symupload","tools"],"latest_commit_sha":null,"homepage":"https://docs.bugsplat.com/introduction/getting-started/integrations/cross-platform/qt/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BugSplat-Git.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-18T16:45:14.000Z","updated_at":"2024-07-09T14:39:43.000Z","dependencies_parsed_at":"2024-07-09T14:42:38.542Z","dependency_job_id":null,"html_url":"https://github.com/BugSplat-Git/my-qt-crasher","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fmy-qt-crasher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fmy-qt-crasher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fmy-qt-crasher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fmy-qt-crasher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BugSplat-Git","download_url":"https://codeload.github.com/BugSplat-Git/my-qt-crasher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241304300,"owners_count":19941100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["breakpad","bugsplat","chromium","crash","crashpad","dumpsyms","minidump","minidumpstackwalk","qt","report","sym","symupload","tools"],"created_at":"2025-03-01T01:38:59.616Z","updated_at":"2025-03-01T01:39:00.283Z","avatar_url":"https://github.com/BugSplat-Git.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![bugsplat-github-banner-basic-outline](https://user-images.githubusercontent.com/20464226/149019306-3186103c-5315-4dad-a499-4fd1df408475.png)](https://bugsplat.com)\n\u003cbr/\u003e\n# \u003cdiv align=\"center\"\u003eBugSplat\u003c/div\u003e \n### **\u003cdiv align=\"center\"\u003eCrash and error reporting built for busy developers.\u003c/div\u003e**\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://twitter.com/BugSplatCo\"\u003e\n        \u003cimg alt=\"Follow @bugsplatco on Twitter\" src=\"https://img.shields.io/twitter/follow/bugsplatco?label=Follow%20BugSplat\u0026style=social\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://discord.gg/K4KjjRV5ve\"\u003e\n        \u003cimg alt=\"Join BugSplat on Discord\" src=\"https://img.shields.io/discord/664965194799251487?label=Join%20Discord\u0026logo=Discord\u0026style=social\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n## 👋 Introduction\n\nThis sample demonstrates cross-platform crash reporting with [BugSplat](https://bugsplat.com), [Crashpad](https://chromium.googlesource.com/crashpad/crashpad/+/master/README.md), and [Qt](https://www.qt.io/). Additionally, my-qt-crasher uses [symbol-upload](https://github.com/BugSplat-Git/symbol-upload) to generate [symbol files](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md) and upload them to BugSplat\n\nFor more information about how to configure Crashpad in your Qt application please see the BugSplat [docs](https://docs.bugsplat.com/introduction/getting-started/integrations/cross-platform/qt).\n\n## 📋 Steps\n\n1. Download and install [Qt Creator](https://www.qt.io/download)\n2. Open myQtCrasher.pro\n3. Build \u003e Run to run without the debugger attached\n4. Click the button to generate a crash report\n5. Log into BugSplat using our public account fred@bugsplat.com and the password Flintstone\n6. Click the link in the ID column on the [Crashes](https://app.bugsplat.com/v2/crashes?database=Fred\u0026c0=appName\u0026f0=EQUAL\u0026v0=myQtCrasher) page to see detailed information similar to what you would see in your debugger\n\n**Crashes Page**\n\u003cimg width=\"1728\" alt=\"BugSplat Crashes Page\" src=\"https://github.com/BugSplat-Git/my-qt-crasher/assets/2646053/174d9e4e-f55d-4a25-b604-252912cd6c67\"\u003e\n\n**Crash Page**\n\u003cimg width=\"1728\" alt=\"BugSplat Crash Page\" src=\"https://github.com/BugSplat-Git/my-qt-crasher/assets/2646053/19f4efad-aea7-47fe-b410-1b87922e7329\"\u003e\n\n### Windows\n\nWhen building your Qt project you may encounter `Il mismatch between 'P1' version 'x' and 'P2' version 'y'`. This is due to Qt building with a different toolchain than the Crashpad libraries. To workaround the `Il mismatch` issue, build Crashpad specifying `/GL-` for `extra_cflags`. When Crashpad is built with different minor versions of MSVC specifying `/GL-` usually fixes the problem. However, if the linker complains about unresolved symbols after specifying `/GL-` you will need to ensure you're building with the same major version of MSVC. The pre-built Crashpad libraries included in this sample are built with MSVC 17 (2022).\n\n### macOS\n\nYou will need to link with the correct libraries and load the correct version of `crashpad_handler` at runtime depending on if your build is targeting x86_64 or arm64 (M1) macOS systems. In `myQtCrasher.pro` there is an variable that you can [uncomment](https://github.com/BugSplat-Git/my-qt-crasher/blob/4a6b1e9cb6084963fd457e745e9142db9c05f063/myQtCrasher.pro#L51) that will allow you to build for arm64 macOS systems.\n\n**Attachments**\n\nBugSplat has created a [Crashpad fork](https://github.com/BugSplat-Git/crashpad) that adds support for attachments to macOS. This project uses pre-built binaries from the forked version of Crashpad to demonstrate attachment support on macOS. If attachment support on macOS is a requirement for your project, you can use the pre-built libraries from this repo, or build the Crashpad libraries yourself from the code in our forked repo.\n\n### Additional Considerations\n\nIf you change the BugSplat `database`, `application`, or `version` values in `main.cpp`, be sure to update the corresponding variables in the [myQtCrasher.pro file](https://github.com/BugSplat-Git/my-qt-crasher/blob/fc55bad38929f21a431c965abcfd3a17b1b91e45/myQtCrasher.pro#L38-L43). The `symbols.sh` scripts are responsible for running `symbol-upload` on macOS and Linux. Likewise, `symbols.bat` is responsible for running `symbol-upload` on Windows. If the values passed to `symbols.sh` or `symbols.bat` via the `QMAKE_POST_LINK` command are wrong then you will not see file names or line numbers in your crash reports.\n\n## 👷 Support\n\nIf you have any additional questions, please email our [support](mailto:support@bugsplat.com) team, join us on [Discord](https://discord.gg/bugsplat), or reach out via the chat in our web application.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugsplat-git%2Fmy-qt-crasher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbugsplat-git%2Fmy-qt-crasher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugsplat-git%2Fmy-qt-crasher/lists"}