{"id":20384943,"url":"https://github.com/d-e-s-o/coredump","last_synced_at":"2025-04-12T09:27:07.394Z","repository":{"id":62438952,"uuid":"208432191","full_name":"d-e-s-o/coredump","owner":"d-e-s-o","description":"A crate to force coredump creation on panics.","archived":false,"fork":false,"pushed_at":"2023-01-02T06:43:27.000Z","size":38,"stargazers_count":16,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-09T16:48:37.506Z","etag":null,"topics":["coredump","debug","dump-files","rust","rust-crate","rust-library"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-e-s-o.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-14T11:42:39.000Z","updated_at":"2024-11-18T22:08:43.000Z","dependencies_parsed_at":"2023-02-01T02:01:23.060Z","dependency_job_id":null,"html_url":"https://github.com/d-e-s-o/coredump","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-e-s-o%2Fcoredump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-e-s-o%2Fcoredump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-e-s-o%2Fcoredump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-e-s-o%2Fcoredump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-e-s-o","download_url":"https://codeload.github.com/d-e-s-o/coredump/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248545472,"owners_count":21122148,"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":["coredump","debug","dump-files","rust","rust-crate","rust-library"],"created_at":"2024-11-15T02:30:53.817Z","updated_at":"2025-04-12T09:27:07.365Z","avatar_url":"https://github.com/d-e-s-o.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![pipeline](https://github.com/d-e-s-o/coredump/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/d-e-s-o/coredump/actions/workflows/ci.yml)\n[![crates.io](https://img.shields.io/crates/v/coredump.svg)](https://crates.io/crates/coredump)\n[![Docs](https://docs.rs/coredump/badge.svg)](https://docs.rs/coredump)\n[![rustc](https://img.shields.io/badge/rustc-1.34+-blue.svg)](https://blog.rust-lang.org/2019/04/11/Rust-1.34.0.html)\n\ncoredump\n========\n\n- [Documentation][docs-rs]\n- [Changelog](CHANGELOG.md)\n\n**coredump** is a crate to make a Rust program create a core dump when\nit encounters a panic.\n\n\nWhy?\n----\n\nBy default, when a Rust program panics it will print a backtrace and\nterminate the program. There are a few situations when this behavior is\nnot sufficient or desired, including when:\n\n- you want to make sure that you are able to root cause problems based\n  on bug reports and a backtrace alone may not be enough\n- you cannot get the backtrace of a panic, for example, because it is\n  printed to the terminal's alternate screen or otherwise not available\n\n**coredump** caters to those and more cases. It should combine with and\nmay be a nice addition to other crates involved in the panic path, such\nas [`human-panic`][human-panic].\n\n\nUsage\n-----\n\nThe crate works by registering a custom panic handler that will run\nafter the previously installed (or default) one. Registration of this\ncustom handler is as simple as invoking:\n```rust\nregister_panic_handler()\n```\nearly during program initialization (ideally before any panic may\nhappen).\n\nAfter a panic has happened, the core file can be investigated using\n[`gdb(1)`][man-1-gdb], like so:\n```bash\n$ rust-gdb \u003cpaniced-binary\u003e \u003ccore-file\u003e\n```\n\nBy default a core file as created by this crate will reside in the\nsystem's temp directory, but this behavior may be overwritten by system\nconfiguration.\n\n\nLimitations\n-----------\n\nBy design, this crate is concerned only with regular (language level)\npanics. Segmentation violations or other problems are not covered by its\napproach. The application using this crate also will have to be compiled\nwith proper unwinding support and not just abort execution (unwinding is\nthe case by default but could be overwritten by adding `panic = 'abort'`\nto the profile being compiled against).\n\nAlso note that while core dumping support is present on many systems,\nmany factors play into the ability of a system to create an application\ncore dump. A lot of these factors are out of this crate's control, both\nin the sense that they cannot be changed but also that they may\npotentially not even be checkable at runtime. The full list of\nrequirements the system must meet is detailed in\n[`core(5)`][man-5-core].\n\n\n[docs-rs]: https://docs.rs/crate/coredump\n[human-panic]: https://crates.io/crates/human-panic\n[man-1-gdb]: http://man7.org/linux/man-pages/man1/gdb.1.html\n[man-5-core]: http://man7.org/linux/man-pages/man5/core.5.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-e-s-o%2Fcoredump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-e-s-o%2Fcoredump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-e-s-o%2Fcoredump/lists"}