aboutsummaryrefslogtreecommitdiff
path: root/examples/armv4t_multicore/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/armv4t_multicore/main.rs')
-rw-r--r--examples/armv4t_multicore/main.rs34
1 files changed, 23 insertions, 11 deletions
diff --git a/examples/armv4t_multicore/main.rs b/examples/armv4t_multicore/main.rs
index 4f799a7..c24f795 100644
--- a/examples/armv4t_multicore/main.rs
+++ b/examples/armv4t_multicore/main.rs
@@ -3,15 +3,20 @@
//! `gdbstub`'s multi-process support. It's not modeled after any real-world
//! system.
-use std::net::{TcpListener, TcpStream};
-
-#[cfg(unix)]
-use std::os::unix::net::{UnixListener, UnixStream};
-
use gdbstub::common::Signal;
-use gdbstub::conn::{Connection, ConnectionExt};
-use gdbstub::stub::{run_blocking, DisconnectReason, GdbStub, GdbStubError, MultiThreadStopReason};
+use gdbstub::conn::Connection;
+use gdbstub::conn::ConnectionExt;
+use gdbstub::stub::run_blocking;
+use gdbstub::stub::DisconnectReason;
+use gdbstub::stub::GdbStub;
+use gdbstub::stub::MultiThreadStopReason;
use gdbstub::target::Target;
+use std::net::TcpListener;
+use std::net::TcpStream;
+#[cfg(unix)]
+use std::os::unix::net::UnixListener;
+#[cfg(unix)]
+use std::os::unix::net::UnixStream;
type DynResult<T> = Result<T, Box<dyn std::error::Error>>;
@@ -178,11 +183,18 @@ fn main() -> DynResult<()> {
}
DisconnectReason::Kill => println!("GDB sent a kill command!"),
},
- Err(GdbStubError::TargetError(e)) => {
- println!("target encountered a fatal error: {}", e)
- }
Err(e) => {
- println!("gdbstub encountered a fatal error: {}", e)
+ if e.is_target_error() {
+ println!(
+ "target encountered a fatal error: {}",
+ e.into_target_error().unwrap()
+ )
+ } else if e.is_connection_error() {
+ let (e, kind) = e.into_connection_error().unwrap();
+ println!("connection error: {:?} - {}", kind, e,)
+ } else {
+ println!("gdbstub encountered a fatal error: {}", e)
+ }
}
}