Browse Source

Dedicated BackTrace Console instead of default

pull/12/head
Andrea Ciliberti 3 years ago
parent
commit
03c7a772c5
  1. 20
      ctru-rs/src/console.rs
  2. 2
      ctru-rs/src/lib.rs

20
ctru-rs/src/console.rs

@ -44,26 +44,6 @@ impl Console {
} }
} }
impl Drop for Console {
fn drop(&mut self) {
// Get the current console by replacing it with the default.
let default_console = unsafe { libctru::consoleGetDefault() };
let current_console = unsafe { libctru::consoleSelect(default_console) };
if std::ptr::eq(current_console, &*self.context) {
// Console dropped while selected. We just replaced it with the
// default so make sure it's initialized.
if unsafe { !(*default_console).consoleInitialised } {
unsafe { libctru::consoleInit(Screen::Top.into(), default_console) };
}
} else {
// Console dropped while a different console was selected. Put back
// the console that was selected.
unsafe { libctru::consoleSelect(current_console) };
}
}
}
impl Default for Console { impl Default for Console {
fn default() -> Self { fn default() -> Self {
Console::init(Screen::Top) Console::init(Screen::Top)

2
ctru-rs/src/lib.rs

@ -21,6 +21,8 @@ pub fn init() {
// Panic Hook setup // Panic Hook setup
let default_hook = std::panic::take_hook(); let default_hook = std::panic::take_hook();
let new_hook = Box::new( move |info: &PanicInfo| { let new_hook = Box::new( move |info: &PanicInfo| {
let _bt_console = console::Console::default();
println!("\x1b[1;31m\n--------------------------------------------------"); println!("\x1b[1;31m\n--------------------------------------------------");
default_hook(info); default_hook(info);
println!("\nPress SELECT to exit the software"); println!("\nPress SELECT to exit the software");

Loading…
Cancel
Save