1use gdb_protocol::{io::GdbServer, packet::{CheckedPacket, Kind}, Error};
2use std::io::{self, prelude::*};
3
4fn main() -> Result<(), Error> {
5 println!("Listening on port 1337...");
6 let mut server = GdbServer::listen("0.0.0.0:1337")?;
7 println!("Connected!");
8
9 while let Some(packet) = server.next_packet()? {
10 println!(
11 "-> {:?} {:?}",
12 packet.kind,
13 std::str::from_utf8(&packet.data)
14 );
15
16 print!(": ");
17 io::stdout().flush()?;
18 let mut response = String::new();
19 io::stdin().read_line(&mut response)?;
20 if response.ends_with('\n') {
21 response.truncate(response.len() - 1);
22 }
23 let response = CheckedPacket::from_data(Kind::Packet, response.into_bytes());
24
25 let mut bytes = Vec::new();
26 response.encode(&mut bytes).unwrap();
27 println!("<- {:?}", std::str::from_utf8(&bytes));
28
29 server.dispatch(&response)?;
30 }
31
32 println!("EOF");
33 Ok(())
34}