From 1b6a04ca5504955c571d1c97504fb45ea0befee4 Mon Sep 17 00:00:00 2001
From: Valentin Popov <valentin@popov.link>
Date: Mon, 8 Jan 2024 01:21:28 +0400
Subject: Initial vendor packages

Signed-off-by: Valentin Popov <valentin@popov.link>
---
 vendor/backtrace/examples/backtrace.rs |  5 ++++
 vendor/backtrace/examples/raw.rs       | 52 ++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 vendor/backtrace/examples/backtrace.rs
 create mode 100644 vendor/backtrace/examples/raw.rs

(limited to 'vendor/backtrace/examples')

diff --git a/vendor/backtrace/examples/backtrace.rs b/vendor/backtrace/examples/backtrace.rs
new file mode 100644
index 0000000..7ff6cd3
--- /dev/null
+++ b/vendor/backtrace/examples/backtrace.rs
@@ -0,0 +1,5 @@
+use backtrace::Backtrace;
+
+fn main() {
+    println!("{:?}", Backtrace::new());
+}
diff --git a/vendor/backtrace/examples/raw.rs b/vendor/backtrace/examples/raw.rs
new file mode 100644
index 0000000..d96a127
--- /dev/null
+++ b/vendor/backtrace/examples/raw.rs
@@ -0,0 +1,52 @@
+fn main() {
+    foo();
+}
+
+fn foo() {
+    bar()
+}
+fn bar() {
+    baz()
+}
+fn baz() {
+    print()
+}
+
+#[cfg(target_pointer_width = "32")]
+const HEX_WIDTH: usize = 10;
+#[cfg(target_pointer_width = "64")]
+const HEX_WIDTH: usize = 20;
+
+fn print() {
+    let mut cnt = 0;
+    backtrace::trace(|frame| {
+        let ip = frame.ip();
+        print!("frame #{:<2} - {:#02$x}", cnt, ip as usize, HEX_WIDTH);
+        cnt += 1;
+
+        let mut resolved = false;
+        backtrace::resolve(frame.ip(), |symbol| {
+            if !resolved {
+                resolved = true;
+            } else {
+                print!("{}", vec![" "; 7 + 2 + 3 + HEX_WIDTH].join(""));
+            }
+
+            if let Some(name) = symbol.name() {
+                print!(" - {}", name);
+            } else {
+                print!(" - <unknown>");
+            }
+            if let Some(file) = symbol.filename() {
+                if let Some(l) = symbol.lineno() {
+                    print!("\n{:13}{:4$}@ {}:{}", "", "", file.display(), l, HEX_WIDTH);
+                }
+            }
+            println!("");
+        });
+        if !resolved {
+            println!(" - <no info>");
+        }
+        true // keep going
+    });
+}
-- 
cgit v1.2.3