Commit work

This commit is contained in:
pjht 2023-09-29 15:47:39 -05:00
parent 978cc419f9
commit 3401b8e3a6
Signed by: pjht
GPG Key ID: CA239FC6934E6F3A
5 changed files with 0 additions and 90 deletions

View File

@ -7,9 +7,6 @@ license = "MIT OR Apache-2.0"
description = "Unwinding library in Rust and for Rust"
repository = "https://github.com/nbdd0121/unwinding/"
[workspace]
members = ["cdylib", "example"]
[dependencies]
gimli = { version = "0.26.1", default-features = false, features = ["read-core"] }
libc = { version = "0.2", optional = true }
@ -36,8 +33,5 @@ panic-handler-dummy = []
system-alloc = []
default = ["unwinder", "dwarf-expr", "hide-trace", "fde-phdr-dl", "fde-registry"]
[profile.release]
debug = true
[package.metadata.docs.rs]
features = ["panic-handler"]

View File

@ -1,12 +0,0 @@
[package]
name = "unwinding_dyn"
version = "0.1.0"
authors = ["Gary Guo <gary@garyguo.net>"]
edition = "2018"
[lib]
crate-type = ["cdylib"]
[dependencies]
unwinding = { path = "../", features = ["system-alloc", "personality-dummy", "panic-handler-dummy"] }
libc = "0.2"

View File

@ -1,8 +0,0 @@
#![no_std]
#![feature(default_alloc_error_handler)]
#![warn(rust_2018_idioms)]
#![warn(unsafe_op_in_unsafe_fn)]
// Keep this explicit
#[allow(unused_extern_crates)]
extern crate unwinding;

View File

@ -1,8 +0,0 @@
[package]
name = "example"
version = "0.1.0"
edition = "2018"
[dependencies]
unwinding = { path = "../", features = ["system-alloc", "personality", "panic-handler"] }
libc = "0.2"

View File

@ -1,56 +0,0 @@
#![no_std]
#![feature(start)]
#![feature(default_alloc_error_handler)]
extern crate alloc;
extern crate unwinding;
use alloc::{borrow::ToOwned, string::String};
use unwinding::print::*;
#[link(name = "c")]
extern "C" {}
struct PrintOnDrop(String);
impl Drop for PrintOnDrop {
fn drop(&mut self) {
println!("dropped: {:?}", self.0);
}
}
struct PanicOnDrop;
impl Drop for PanicOnDrop {
fn drop(&mut self) {
panic!("panic on drop");
}
}
fn foo() {
panic!("panic");
}
fn bar() {
let _p = PrintOnDrop("string".to_owned());
foo()
}
fn main() {
let _ = unwinding::panic::catch_unwind(|| {
bar();
println!("done");
});
println!("caught");
let _p = PanicOnDrop;
foo();
}
#[start]
fn start(_argc: isize, _argv: *const *const u8) -> isize {
unwinding::panic::catch_unwind(|| {
main();
0
})
.unwrap_or(101)
}