From e2329b80c2d51ee0ab4678365a35b27b51f32235 Mon Sep 17 00:00:00 2001 From: Daniel Prilik Date: Sun, 30 Apr 2023 11:30:02 -0700 Subject: [PATCH] fmt everything using imports_granularity = "Item" In the years since I first started `gdbstub`, I've grown fond of one-import-per-line formatting. --- CHANGELOG.md | 5 ++++ example_no_std/src/gdb.rs | 12 ++++---- example_no_std/src/main.rs | 6 ++-- examples/armv4t/emu.rs | 10 +++++-- examples/armv4t/gdb/auxv.rs | 5 ++-- examples/armv4t/gdb/breakpoints.rs | 3 +- examples/armv4t/gdb/catch_syscalls.rs | 3 +- examples/armv4t/gdb/exec_file.rs | 5 ++-- examples/armv4t/gdb/extended_mode.rs | 7 +++-- examples/armv4t/gdb/host_io.rs | 21 ++++++++------ .../armv4t/gdb/lldb_register_info_override.rs | 13 +++++---- examples/armv4t/gdb/memory_map.rs | 5 ++-- examples/armv4t/gdb/mod.rs | 27 +++++++++++------- examples/armv4t/gdb/monitor_cmd.rs | 6 ++-- examples/armv4t/gdb/section_offsets.rs | 3 +- .../gdb/target_description_xml_override.rs | 5 ++-- examples/armv4t/main.rs | 18 +++++++----- examples/armv4t_multicore/emu.rs | 13 +++++---- examples/armv4t_multicore/gdb.rs | 19 ++++++++----- examples/armv4t_multicore/main.rs | 19 ++++++++----- gdbstub_arch/src/aarch64/reg/aarch64_core.rs | 1 - gdbstub_arch/src/aarch64/reg/id.rs | 1 - gdbstub_arch/src/arm/reg/id.rs | 1 - gdbstub_arch/src/mips/reg/id.rs | 1 - gdbstub_arch/src/mips/reg/mips.rs | 4 +-- gdbstub_arch/src/msp430/reg/id.rs | 1 - gdbstub_arch/src/msp430/reg/msp430.rs | 3 +- gdbstub_arch/src/ppc/mod.rs | 3 +- gdbstub_arch/src/ppc/reg/common.rs | 4 +-- gdbstub_arch/src/riscv/reg/id.rs | 1 - gdbstub_arch/src/riscv/reg/riscv.rs | 3 +- gdbstub_arch/src/x86/reg/core32.rs | 6 ++-- gdbstub_arch/src/x86/reg/core64.rs | 6 ++-- gdbstub_arch/src/x86/reg/id.rs | 1 - gdbstub_arch/src/x86/reg/mod.rs | 1 - rustfmt.toml | 3 +- src/arch.rs | 9 +++--- src/conn/impls/boxed.rs | 1 - src/conn/impls/tcpstream.rs | 3 +- src/conn/impls/unixstream.rs | 5 ++-- src/protocol/commands.rs | 10 +++---- src/protocol/commands/_QCatchSyscalls.rs | 1 - src/protocol/commands/_d_upcase.rs | 1 - src/protocol/commands/_h_upcase.rs | 1 - src/protocol/commands/_qAttached.rs | 1 - src/protocol/commands/_qThreadExtraInfo.rs | 1 - src/protocol/commands/_qXfer_auxv_read.rs | 4 +-- src/protocol/commands/_qXfer_exec_file.rs | 4 +-- src/protocol/commands/_qXfer_features_read.rs | 4 +-- src/protocol/commands/_qXfer_memory_map.rs | 4 +-- src/protocol/commands/_t_upcase.rs | 1 - src/protocol/commands/_vAttach.rs | 1 - src/protocol/commands/_vCont.rs | 4 +-- src/protocol/commands/_vFile_open.rs | 4 +-- src/protocol/commands/_vFile_pwrite.rs | 1 - src/protocol/commands/_vFile_setfs.rs | 1 - src/protocol/commands/_vKill.rs | 1 - src/protocol/commands/_vRun.rs | 1 - src/protocol/commands/_x_upcase.rs | 1 - src/protocol/commands/breakpoint.rs | 3 +- src/protocol/common/hex.rs | 5 +++- src/protocol/common/lists.rs | 3 +- src/protocol/common/thread_id.rs | 6 ++-- src/protocol/console_output.rs | 3 +- src/protocol/mod.rs | 16 ++++++----- src/protocol/recv_packet.rs | 5 ++-- src/protocol/response_writer.rs | 12 ++++---- src/stub/builder.rs | 14 ++++------ src/stub/core_impl.rs | 13 +++++---- src/stub/core_impl/base.rs | 20 +++++++------ src/stub/core_impl/breakpoints.rs | 4 +-- src/stub/core_impl/catch_syscalls.rs | 3 +- src/stub/core_impl/extended_mode.rs | 1 - src/stub/core_impl/host_io.rs | 6 ++-- src/stub/core_impl/lldb_register_info.rs | 14 ++++++---- src/stub/core_impl/monitor_cmd.rs | 1 - src/stub/core_impl/resume.rs | 12 ++++---- src/stub/core_impl/reverse_exec.rs | 9 +++--- src/stub/core_impl/single_register_access.rs | 4 +-- src/stub/core_impl/target_xml.rs | 3 +- src/stub/core_impl/x_upcase_packet.rs | 3 +- src/stub/error.rs | 8 ++++-- src/stub/mod.rs | 28 ++++++++++--------- src/stub/state_machine.rs | 15 +++++----- src/target/ext/auxv.rs | 3 +- src/target/ext/base/multithread.rs | 3 +- src/target/ext/base/single_register_access.rs | 3 +- src/target/ext/base/singlethread.rs | 3 +- src/target/ext/breakpoints.rs | 3 +- src/target/ext/catch_syscalls.rs | 3 +- src/target/ext/exec_file.rs | 4 +-- src/target/ext/extended_mode.rs | 3 +- src/target/ext/host_io.rs | 3 +- src/target/ext/memory_map.rs | 3 +- src/target/ext/monitor_cmd.rs | 7 +++-- .../ext/target_description_xml_override.rs | 3 +- 96 files changed, 296 insertions(+), 265 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b99dfb7d..9375f501 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,12 +9,17 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `GdbStubError` has been overhauled. Instead of being an `enum`, it is now an opaque `struct` with a handful of methods to extract concrete user-defined error data. - _This change will enable future versions of `gdbstub` to fearlessly improve error messages and infrastructure without making semver breaking changes._ - `Signal` is not longer an `enum`, and is instead a `struct` with a single `pub u8` field + a collection of associated constants. + - _As a result, yet another instance of `unsafe` could be removed from the codebase!_ - `Arch` API: - Entirely removed `single_step_behavior`. See [\#132](https://github.com/daniel5151/gdbstub/pull/132) for details and rationale - `Target` APIs: - `SingleThreadBase`/`MultiThreadBase` - `read_addrs` now returns a `usize` instead of a `()`, allowing implementations to report cases where only a subset of memory could be read. +#### Internal Improvements + +- `rustfmt`: Switched to using `imports_granularity = "Item"` + # 0.6.6 #### New Features diff --git a/example_no_std/src/gdb.rs b/example_no_std/src/gdb.rs index b9c8456b..4677983f 100644 --- a/example_no_std/src/gdb.rs +++ b/example_no_std/src/gdb.rs @@ -1,9 +1,11 @@ -use gdbstub::common::{Signal, Tid}; -use gdbstub::target; -use gdbstub::target::ext::base::multithread::{MultiThreadBase, MultiThreadResume}; -use gdbstub::target::{Target, TargetResult}; - use crate::print_str::print_str; +use gdbstub::common::Signal; +use gdbstub::common::Tid; +use gdbstub::target; +use gdbstub::target::ext::base::multithread::MultiThreadBase; +use gdbstub::target::ext::base::multithread::MultiThreadResume; +use gdbstub::target::Target; +use gdbstub::target::TargetResult; pub struct DummyTarget {} diff --git a/example_no_std/src/main.rs b/example_no_std/src/main.rs index df2dc7cc..41cdbd5f 100644 --- a/example_no_std/src/main.rs +++ b/example_no_std/src/main.rs @@ -4,16 +4,16 @@ #![no_std] #![no_main] +use crate::print_str::print_str; use gdbstub::stub::state_machine::GdbStubStateMachine; +use gdbstub::stub::DisconnectReason; +use gdbstub::stub::GdbStubBuilder; use gdbstub::stub::MultiThreadStopReason; -use gdbstub::stub::{DisconnectReason, GdbStubBuilder}; mod conn; mod gdb; mod print_str; -use crate::print_str::print_str; - #[panic_handler] fn panic(_info: &core::panic::PanicInfo<'_>) -> ! { loop {} diff --git a/examples/armv4t/emu.rs b/examples/armv4t/emu.rs index c1c905d8..e94131b6 100644 --- a/examples/armv4t/emu.rs +++ b/examples/armv4t/emu.rs @@ -1,7 +1,11 @@ -use armv4t_emu::{reg, Cpu, ExampleMem, Memory, Mode}; - -use crate::mem_sniffer::{AccessKind, MemSniffer}; +use crate::mem_sniffer::AccessKind; +use crate::mem_sniffer::MemSniffer; use crate::DynResult; +use armv4t_emu::reg; +use armv4t_emu::Cpu; +use armv4t_emu::ExampleMem; +use armv4t_emu::Memory; +use armv4t_emu::Mode; use gdbstub::common::Pid; const HLE_RETURN_ADDR: u32 = 0x12345678; diff --git a/examples/armv4t/gdb/auxv.rs b/examples/armv4t/gdb/auxv.rs index a0f163be..3be05490 100644 --- a/examples/armv4t/gdb/auxv.rs +++ b/examples/armv4t/gdb/auxv.rs @@ -1,8 +1,7 @@ -use gdbstub::target; -use gdbstub::target::TargetResult; - use super::copy_range_to_buf; use crate::emu::Emu; +use gdbstub::target; +use gdbstub::target::TargetResult; impl target::ext::auxv::Auxv for Emu { fn get_auxv(&self, offset: u64, length: usize, buf: &mut [u8]) -> TargetResult { diff --git a/examples/armv4t/gdb/breakpoints.rs b/examples/armv4t/gdb/breakpoints.rs index 6fa3038f..9d6d90d6 100644 --- a/examples/armv4t/gdb/breakpoints.rs +++ b/examples/armv4t/gdb/breakpoints.rs @@ -1,9 +1,8 @@ +use crate::emu::Emu; use gdbstub::target; use gdbstub::target::ext::breakpoints::WatchKind; use gdbstub::target::TargetResult; -use crate::emu::Emu; - impl target::ext::breakpoints::Breakpoints for Emu { #[inline(always)] fn support_sw_breakpoint( diff --git a/examples/armv4t/gdb/catch_syscalls.rs b/examples/armv4t/gdb/catch_syscalls.rs index 63686f13..d58de989 100644 --- a/examples/armv4t/gdb/catch_syscalls.rs +++ b/examples/armv4t/gdb/catch_syscalls.rs @@ -1,8 +1,7 @@ +use crate::gdb::Emu; use gdbstub::target; use gdbstub::target::ext::catch_syscalls::SyscallNumbers; -use crate::gdb::Emu; - // This implementation is for illustrative purposes only. If the target doesn't // support syscalls then there is no need to implement this extension diff --git a/examples/armv4t/gdb/exec_file.rs b/examples/armv4t/gdb/exec_file.rs index e70a022a..c2009a85 100644 --- a/examples/armv4t/gdb/exec_file.rs +++ b/examples/armv4t/gdb/exec_file.rs @@ -1,10 +1,9 @@ +use super::copy_range_to_buf; +use crate::emu::Emu; use gdbstub::common::Pid; use gdbstub::target; use gdbstub::target::TargetResult; -use super::copy_range_to_buf; -use crate::emu::Emu; - impl target::ext::exec_file::ExecFile for Emu { fn get_exec_file( &self, diff --git a/examples/armv4t/gdb/extended_mode.rs b/examples/armv4t/gdb/extended_mode.rs index 61fe209a..31116f92 100644 --- a/examples/armv4t/gdb/extended_mode.rs +++ b/examples/armv4t/gdb/extended_mode.rs @@ -1,10 +1,11 @@ +use crate::emu::Emu; use gdbstub::common::Pid; use gdbstub::target; -use gdbstub::target::ext::extended_mode::{Args, AttachKind, ShouldTerminate}; +use gdbstub::target::ext::extended_mode::Args; +use gdbstub::target::ext::extended_mode::AttachKind; +use gdbstub::target::ext::extended_mode::ShouldTerminate; use gdbstub::target::TargetResult; -use crate::emu::Emu; - /*===================================== = Extended Mode = =====================================*/ diff --git a/examples/armv4t/gdb/host_io.rs b/examples/armv4t/gdb/host_io.rs index 40d63041..675b14e2 100644 --- a/examples/armv4t/gdb/host_io.rs +++ b/examples/armv4t/gdb/host_io.rs @@ -1,13 +1,18 @@ -use std::io::{Read, Seek, Write}; - -use gdbstub::target; -use gdbstub::target::ext::host_io::{ - FsKind, HostIoErrno, HostIoError, HostIoOpenFlags, HostIoOpenMode, HostIoResult, HostIoStat, -}; - -use super::{copy_range_to_buf, copy_to_buf}; +use super::copy_range_to_buf; +use super::copy_to_buf; use crate::emu::Emu; use crate::TEST_PROGRAM_ELF; +use gdbstub::target; +use gdbstub::target::ext::host_io::FsKind; +use gdbstub::target::ext::host_io::HostIoErrno; +use gdbstub::target::ext::host_io::HostIoError; +use gdbstub::target::ext::host_io::HostIoOpenFlags; +use gdbstub::target::ext::host_io::HostIoOpenMode; +use gdbstub::target::ext::host_io::HostIoResult; +use gdbstub::target::ext::host_io::HostIoStat; +use std::io::Read; +use std::io::Seek; +use std::io::Write; const FD_RESERVED: u32 = 1; diff --git a/examples/armv4t/gdb/lldb_register_info_override.rs b/examples/armv4t/gdb/lldb_register_info_override.rs index 664cb457..14a12799 100644 --- a/examples/armv4t/gdb/lldb_register_info_override.rs +++ b/examples/armv4t/gdb/lldb_register_info_override.rs @@ -1,12 +1,15 @@ -use gdbstub::arch::lldb::{Encoding, Format, Generic, Register}; +use crate::gdb::custom_arch::ArmCoreRegIdCustom; +use crate::gdb::Emu; +use gdbstub::arch::lldb::Encoding; +use gdbstub::arch::lldb::Format; +use gdbstub::arch::lldb::Generic; +use gdbstub::arch::lldb::Register; use gdbstub::arch::RegId; use gdbstub::target; -use gdbstub::target::ext::lldb_register_info_override::{Callback, CallbackToken}; +use gdbstub::target::ext::lldb_register_info_override::Callback; +use gdbstub::target::ext::lldb_register_info_override::CallbackToken; use gdbstub_arch::arm::reg::id::ArmCoreRegId; -use crate::gdb::custom_arch::ArmCoreRegIdCustom; -use crate::gdb::Emu; - // (LLDB extension) This implementation is for illustrative purposes only. // // Note: In this implementation, we have r0-pc from 0-16 but cpsr is at offset diff --git a/examples/armv4t/gdb/memory_map.rs b/examples/armv4t/gdb/memory_map.rs index ddddb654..0aa5c08d 100644 --- a/examples/armv4t/gdb/memory_map.rs +++ b/examples/armv4t/gdb/memory_map.rs @@ -1,8 +1,7 @@ -use gdbstub::target; -use gdbstub::target::TargetResult; - use super::copy_range_to_buf; use crate::emu::Emu; +use gdbstub::target; +use gdbstub::target::TargetResult; impl target::ext::memory_map::MemoryMap for Emu { fn memory_map_xml( diff --git a/examples/armv4t/gdb/mod.rs b/examples/armv4t/gdb/mod.rs index 38f69ae9..5837ddd7 100644 --- a/examples/armv4t/gdb/mod.rs +++ b/examples/armv4t/gdb/mod.rs @@ -1,14 +1,17 @@ +use crate::emu::Emu; +use crate::emu::ExecMode; +use armv4t_emu::reg; +use armv4t_emu::Memory; use core::convert::TryInto; - -use armv4t_emu::{reg, Memory}; use gdbstub::common::Signal; use gdbstub::target; -use gdbstub::target::ext::base::singlethread::{SingleThreadBase, SingleThreadResume}; -use gdbstub::target::{Target, TargetError, TargetResult}; +use gdbstub::target::ext::base::singlethread::SingleThreadBase; +use gdbstub::target::ext::base::singlethread::SingleThreadResume; +use gdbstub::target::Target; +use gdbstub::target::TargetError; +use gdbstub::target::TargetResult; use gdbstub_arch::arm::reg::id::ArmCoreRegId; -use crate::emu::{Emu, ExecMode}; - // Additional GDB extensions mod auxv; @@ -390,10 +393,14 @@ impl target::ext::base::singlethread::SingleThreadRangeStepping for Emu { mod custom_arch { use core::num::NonZeroUsize; - - use gdbstub::arch::lldb::{Encoding, Format, Generic, Register, RegisterInfo}; - use gdbstub::arch::{Arch, RegId, Registers}; - + use gdbstub::arch::lldb::Encoding; + use gdbstub::arch::lldb::Format; + use gdbstub::arch::lldb::Generic; + use gdbstub::arch::lldb::Register; + use gdbstub::arch::lldb::RegisterInfo; + use gdbstub::arch::Arch; + use gdbstub::arch::RegId; + use gdbstub::arch::Registers; use gdbstub_arch::arm::reg::id::ArmCoreRegId; use gdbstub_arch::arm::reg::ArmCoreRegs; use gdbstub_arch::arm::ArmBreakpointKind; diff --git a/examples/armv4t/gdb/monitor_cmd.rs b/examples/armv4t/gdb/monitor_cmd.rs index 4dbdffcd..4e91b282 100644 --- a/examples/armv4t/gdb/monitor_cmd.rs +++ b/examples/armv4t/gdb/monitor_cmd.rs @@ -1,7 +1,7 @@ -use gdbstub::target; -use gdbstub::target::ext::monitor_cmd::{outputln, ConsoleOutput}; - use crate::gdb::Emu; +use gdbstub::target; +use gdbstub::target::ext::monitor_cmd::outputln; +use gdbstub::target::ext::monitor_cmd::ConsoleOutput; impl target::ext::monitor_cmd::MonitorCmd for Emu { fn handle_monitor_cmd( diff --git a/examples/armv4t/gdb/section_offsets.rs b/examples/armv4t/gdb/section_offsets.rs index d04aab70..facebc32 100644 --- a/examples/armv4t/gdb/section_offsets.rs +++ b/examples/armv4t/gdb/section_offsets.rs @@ -1,8 +1,7 @@ +use crate::gdb::Emu; use gdbstub::target; use gdbstub::target::ext::section_offsets::Offsets; -use crate::gdb::Emu; - // This implementation is for illustrative purposes only. If the offsets are // guaranteed to be zero, this extension does not need to be implemented. diff --git a/examples/armv4t/gdb/target_description_xml_override.rs b/examples/armv4t/gdb/target_description_xml_override.rs index 2c5348c3..681a9d55 100644 --- a/examples/armv4t/gdb/target_description_xml_override.rs +++ b/examples/armv4t/gdb/target_description_xml_override.rs @@ -1,10 +1,9 @@ +use super::copy_range_to_buf; +use crate::emu::Emu; use gdbstub::target; use gdbstub::target::TargetError; use gdbstub::target::TargetResult; -use super::copy_range_to_buf; -use crate::emu::Emu; - impl target::ext::target_description_xml_override::TargetDescriptionXmlOverride for Emu { fn target_description_xml( &self, diff --git a/examples/armv4t/main.rs b/examples/armv4t/main.rs index 7c41e2ed..ab15f9bb 100644 --- a/examples/armv4t/main.rs +++ b/examples/armv4t/main.rs @@ -2,16 +2,20 @@ //! `arm-none-eabi-cc -march=armv4t`. 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::conn::Connection; +use gdbstub::conn::ConnectionExt; +use gdbstub::stub::run_blocking; +use gdbstub::stub::DisconnectReason; +use gdbstub::stub::GdbStub; use gdbstub::stub::SingleThreadStopReason; -use gdbstub::stub::{run_blocking, DisconnectReason, GdbStub}; 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 = Result>; diff --git a/examples/armv4t_multicore/emu.rs b/examples/armv4t_multicore/emu.rs index 1eed74c9..1b9dac40 100644 --- a/examples/armv4t_multicore/emu.rs +++ b/examples/armv4t_multicore/emu.rs @@ -9,12 +9,15 @@ //! system that can be debugged, it would really merit a re-write, since it's //! not a good example of "proper Rust coding practices" -use std::collections::HashMap; - -use armv4t_emu::{reg, Cpu, ExampleMem, Memory, Mode}; - -use crate::mem_sniffer::{AccessKind, MemSniffer}; +use crate::mem_sniffer::AccessKind; +use crate::mem_sniffer::MemSniffer; use crate::DynResult; +use armv4t_emu::reg; +use armv4t_emu::Cpu; +use armv4t_emu::ExampleMem; +use armv4t_emu::Memory; +use armv4t_emu::Mode; +use std::collections::HashMap; const HLE_RETURN_ADDR: u32 = 0x12345678; diff --git a/examples/armv4t_multicore/gdb.rs b/examples/armv4t_multicore/gdb.rs index 2ad14627..11ed1e3f 100644 --- a/examples/armv4t_multicore/gdb.rs +++ b/examples/armv4t_multicore/gdb.rs @@ -1,12 +1,17 @@ -use armv4t_emu::{reg, Memory}; - -use gdbstub::common::{Signal, Tid}; +use crate::emu::CpuId; +use crate::emu::Emu; +use crate::emu::ExecMode; +use armv4t_emu::reg; +use armv4t_emu::Memory; +use gdbstub::common::Signal; +use gdbstub::common::Tid; use gdbstub::target; -use gdbstub::target::ext::base::multithread::{MultiThreadBase, MultiThreadResume}; +use gdbstub::target::ext::base::multithread::MultiThreadBase; +use gdbstub::target::ext::base::multithread::MultiThreadResume; use gdbstub::target::ext::breakpoints::WatchKind; -use gdbstub::target::{Target, TargetError, TargetResult}; - -use crate::emu::{CpuId, Emu, ExecMode}; +use gdbstub::target::Target; +use gdbstub::target::TargetError; +use gdbstub::target::TargetResult; pub fn cpuid_to_tid(id: CpuId) -> Tid { match id { diff --git a/examples/armv4t_multicore/main.rs b/examples/armv4t_multicore/main.rs index 451472db..c24f7956 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, 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 = Result>; diff --git a/gdbstub_arch/src/aarch64/reg/aarch64_core.rs b/gdbstub_arch/src/aarch64/reg/aarch64_core.rs index 083c8c14..e72f596b 100644 --- a/gdbstub_arch/src/aarch64/reg/aarch64_core.rs +++ b/gdbstub_arch/src/aarch64/reg/aarch64_core.rs @@ -1,5 +1,4 @@ use core::convert::TryInto; - use gdbstub::arch::Registers; /// AArch64 core registers. diff --git a/gdbstub_arch/src/aarch64/reg/id.rs b/gdbstub_arch/src/aarch64/reg/id.rs index 71e92b58..c10e6ce4 100644 --- a/gdbstub_arch/src/aarch64/reg/id.rs +++ b/gdbstub_arch/src/aarch64/reg/id.rs @@ -1,5 +1,4 @@ use core::num::NonZeroUsize; - use gdbstub::arch::RegId; /// AArch64 Architectural Registers. diff --git a/gdbstub_arch/src/arm/reg/id.rs b/gdbstub_arch/src/arm/reg/id.rs index 3b91321a..10f7c263 100644 --- a/gdbstub_arch/src/arm/reg/id.rs +++ b/gdbstub_arch/src/arm/reg/id.rs @@ -1,5 +1,4 @@ use core::num::NonZeroUsize; - use gdbstub::arch::RegId; /// 32-bit ARM core register identifier. diff --git a/gdbstub_arch/src/mips/reg/id.rs b/gdbstub_arch/src/mips/reg/id.rs index 99afb3f9..4a80d90a 100644 --- a/gdbstub_arch/src/mips/reg/id.rs +++ b/gdbstub_arch/src/mips/reg/id.rs @@ -1,5 +1,4 @@ use core::num::NonZeroUsize; - use gdbstub::arch::RegId; /// MIPS register identifier. diff --git a/gdbstub_arch/src/mips/reg/mips.rs b/gdbstub_arch/src/mips/reg/mips.rs index 3e2023c0..b5bd42c5 100644 --- a/gdbstub_arch/src/mips/reg/mips.rs +++ b/gdbstub_arch/src/mips/reg/mips.rs @@ -1,9 +1,7 @@ use core::convert::TryInto; - -use num_traits::PrimInt; - use gdbstub::arch::Registers; use gdbstub::internal::LeBytes; +use num_traits::PrimInt; /// MIPS registers. /// diff --git a/gdbstub_arch/src/msp430/reg/id.rs b/gdbstub_arch/src/msp430/reg/id.rs index 679c1ccf..b357b060 100644 --- a/gdbstub_arch/src/msp430/reg/id.rs +++ b/gdbstub_arch/src/msp430/reg/id.rs @@ -1,5 +1,4 @@ use core::num::NonZeroUsize; - use gdbstub::arch::RegId; /// TI-MSP430 register identifier. diff --git a/gdbstub_arch/src/msp430/reg/msp430.rs b/gdbstub_arch/src/msp430/reg/msp430.rs index 89f04e1c..f66a0a5f 100644 --- a/gdbstub_arch/src/msp430/reg/msp430.rs +++ b/gdbstub_arch/src/msp430/reg/msp430.rs @@ -1,7 +1,6 @@ -use num_traits::PrimInt; - use gdbstub::arch::Registers; use gdbstub::internal::LeBytes; +use num_traits::PrimInt; /// TI-MSP430 registers. /// diff --git a/gdbstub_arch/src/ppc/mod.rs b/gdbstub_arch/src/ppc/mod.rs index 78ba8128..60beed33 100644 --- a/gdbstub_arch/src/ppc/mod.rs +++ b/gdbstub_arch/src/ppc/mod.rs @@ -1,6 +1,7 @@ //! Implementations for various PowerPC architectures. -use gdbstub::arch::{Arch, RegId}; +use gdbstub::arch::Arch; +use gdbstub::arch::RegId; pub mod reg; diff --git a/gdbstub_arch/src/ppc/reg/common.rs b/gdbstub_arch/src/ppc/reg/common.rs index c84a87bd..a93d5473 100644 --- a/gdbstub_arch/src/ppc/reg/common.rs +++ b/gdbstub_arch/src/ppc/reg/common.rs @@ -1,8 +1,6 @@ -use gdbstub::arch::Registers; - use super::PpcVector; - use core::convert::TryInto; +use gdbstub::arch::Registers; /// 32-bit PowerPC core registers, FPU registers, and AltiVec SIMD registers. /// diff --git a/gdbstub_arch/src/riscv/reg/id.rs b/gdbstub_arch/src/riscv/reg/id.rs index 621231e3..c758bfd4 100644 --- a/gdbstub_arch/src/riscv/reg/id.rs +++ b/gdbstub_arch/src/riscv/reg/id.rs @@ -1,5 +1,4 @@ use core::num::NonZeroUsize; - use gdbstub::arch::RegId; /// RISC-V Register identifier. diff --git a/gdbstub_arch/src/riscv/reg/riscv.rs b/gdbstub_arch/src/riscv/reg/riscv.rs index 15075f22..4d7afaf9 100644 --- a/gdbstub_arch/src/riscv/reg/riscv.rs +++ b/gdbstub_arch/src/riscv/reg/riscv.rs @@ -1,7 +1,6 @@ -use num_traits::PrimInt; - use gdbstub::arch::Registers; use gdbstub::internal::LeBytes; +use num_traits::PrimInt; /// RISC-V Integer registers. /// diff --git a/gdbstub_arch/src/x86/reg/core32.rs b/gdbstub_arch/src/x86/reg/core32.rs index 105b3800..6939f2a0 100644 --- a/gdbstub_arch/src/x86/reg/core32.rs +++ b/gdbstub_arch/src/x86/reg/core32.rs @@ -1,9 +1,9 @@ +use super::X86SegmentRegs; +use super::X87FpuInternalRegs; +use super::F80; use core::convert::TryInto; - use gdbstub::arch::Registers; -use super::{X86SegmentRegs, X87FpuInternalRegs, F80}; - /// 32-bit x86 core registers (+ SSE extensions). /// /// Source: diff --git a/gdbstub_arch/src/x86/reg/core64.rs b/gdbstub_arch/src/x86/reg/core64.rs index f61d2d54..e85e931d 100644 --- a/gdbstub_arch/src/x86/reg/core64.rs +++ b/gdbstub_arch/src/x86/reg/core64.rs @@ -1,9 +1,9 @@ +use super::X86SegmentRegs; +use super::X87FpuInternalRegs; +use super::F80; use core::convert::TryInto; - use gdbstub::arch::Registers; -use super::{X86SegmentRegs, X87FpuInternalRegs, F80}; - /// 64-bit x86 core registers (+ SSE extensions). /// /// Source: diff --git a/gdbstub_arch/src/x86/reg/id.rs b/gdbstub_arch/src/x86/reg/id.rs index d1f5462b..ec2f1be8 100644 --- a/gdbstub_arch/src/x86/reg/id.rs +++ b/gdbstub_arch/src/x86/reg/id.rs @@ -1,5 +1,4 @@ use core::num::NonZeroUsize; - use gdbstub::arch::RegId; /// FPU register identifier. diff --git a/gdbstub_arch/src/x86/reg/mod.rs b/gdbstub_arch/src/x86/reg/mod.rs index 6397e701..fa2ab58f 100644 --- a/gdbstub_arch/src/x86/reg/mod.rs +++ b/gdbstub_arch/src/x86/reg/mod.rs @@ -1,7 +1,6 @@ //! `Register` structs for x86 architectures. use core::convert::TryInto; - use gdbstub::arch::Registers; /// `RegId` definitions for x86 architectures. diff --git a/rustfmt.toml b/rustfmt.toml index 606e2923..6e14a7ce 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1 +1,2 @@ -wrap_comments = true \ No newline at end of file +imports_granularity = "Item" +wrap_comments = true diff --git a/src/arch.rs b/src/arch.rs index 3eb4b196..00fbba2c 100644 --- a/src/arch.rs +++ b/src/arch.rs @@ -15,12 +15,13 @@ //! > Having community-created `Arch` implementations distributed in a separate //! crate helps minimize any unnecessary "version churn" in `gdbstub` core. +use crate::internal::BeBytes; +use crate::internal::LeBytes; use core::fmt::Debug; use core::num::NonZeroUsize; - -use num_traits::{FromPrimitive, PrimInt, Unsigned}; - -use crate::internal::{BeBytes, LeBytes}; +use num_traits::FromPrimitive; +use num_traits::PrimInt; +use num_traits::Unsigned; /// Register identifier for target registers. /// diff --git a/src/conn/impls/boxed.rs b/src/conn/impls/boxed.rs index 2de92c0a..100d83ed 100644 --- a/src/conn/impls/boxed.rs +++ b/src/conn/impls/boxed.rs @@ -1,6 +1,5 @@ use crate::conn::Connection; use crate::conn::ConnectionExt; - use alloc::boxed::Box; impl Connection for Box> { diff --git a/src/conn/impls/tcpstream.rs b/src/conn/impls/tcpstream.rs index 969b7ff7..512a15dd 100644 --- a/src/conn/impls/tcpstream.rs +++ b/src/conn/impls/tcpstream.rs @@ -1,7 +1,6 @@ -use std::net::TcpStream; - use crate::conn::Connection; use crate::conn::ConnectionExt; +use std::net::TcpStream; impl Connection for TcpStream { type Error = std::io::Error; diff --git a/src/conn/impls/unixstream.rs b/src/conn/impls/unixstream.rs index a810021a..575cc4ee 100644 --- a/src/conn/impls/unixstream.rs +++ b/src/conn/impls/unixstream.rs @@ -1,8 +1,7 @@ -use std::io; -use std::os::unix::net::UnixStream; - use crate::conn::Connection; use crate::conn::ConnectionExt; +use std::io; +use std::os::unix::net::UnixStream; // TODO: Remove PeekExt once rust-lang/rust#73761 is stabilized trait PeekExt { diff --git a/src/protocol/commands.rs b/src/protocol/commands.rs index 525533a3..7db8bc98 100644 --- a/src/protocol/commands.rs +++ b/src/protocol/commands.rs @@ -1,17 +1,17 @@ -use paste::paste; - use crate::protocol::packet::PacketBuf; use crate::target::Target; +use paste::paste; /// Common imports used by >50% of all packet parsers. /// /// Do not clutter this prelude with types only used by a few packets. pub(self) mod prelude { - pub use core::convert::{TryFrom, TryInto}; - pub use crate::protocol::commands::ParseCommand; - pub use crate::protocol::common::hex::{decode_hex, decode_hex_buf}; + pub use crate::protocol::common::hex::decode_hex; + pub use crate::protocol::common::hex::decode_hex_buf; pub use crate::protocol::packet::PacketBuf; + pub use core::convert::TryFrom; + pub use core::convert::TryInto; } pub trait ParseCommand<'a>: Sized { diff --git a/src/protocol/commands/_QCatchSyscalls.rs b/src/protocol/commands/_QCatchSyscalls.rs index 26a27a1e..09911170 100644 --- a/src/protocol/commands/_QCatchSyscalls.rs +++ b/src/protocol/commands/_QCatchSyscalls.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::lists::ArgListHex; #[derive(Debug)] diff --git a/src/protocol/commands/_d_upcase.rs b/src/protocol/commands/_d_upcase.rs index c5325328..f33ae628 100644 --- a/src/protocol/commands/_d_upcase.rs +++ b/src/protocol/commands/_d_upcase.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::common::Pid; #[derive(Debug)] diff --git a/src/protocol/commands/_h_upcase.rs b/src/protocol/commands/_h_upcase.rs index 3e23ced5..f7bb9ed1 100644 --- a/src/protocol/commands/_h_upcase.rs +++ b/src/protocol/commands/_h_upcase.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::thread_id::ThreadId; #[derive(Debug)] diff --git a/src/protocol/commands/_qAttached.rs b/src/protocol/commands/_qAttached.rs index 36555594..6323e877 100644 --- a/src/protocol/commands/_qAttached.rs +++ b/src/protocol/commands/_qAttached.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::common::Pid; #[derive(Debug)] diff --git a/src/protocol/commands/_qThreadExtraInfo.rs b/src/protocol/commands/_qThreadExtraInfo.rs index 9fe62009..d89fbcd0 100644 --- a/src/protocol/commands/_qThreadExtraInfo.rs +++ b/src/protocol/commands/_qThreadExtraInfo.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::thread_id::ThreadId; use crate::protocol::ConcreteThreadId; diff --git a/src/protocol/commands/_qXfer_auxv_read.rs b/src/protocol/commands/_qXfer_auxv_read.rs index 15a8c172..11a2c9b0 100644 --- a/src/protocol/commands/_qXfer_auxv_read.rs +++ b/src/protocol/commands/_qXfer_auxv_read.rs @@ -1,6 +1,6 @@ // use super::prelude::*; // unused - -use crate::protocol::common::qxfer::{ParseAnnex, QXferReadBase}; +use crate::protocol::common::qxfer::ParseAnnex; +use crate::protocol::common::qxfer::QXferReadBase; pub type qXferAuxvRead<'a> = QXferReadBase<'a, AuxvAnnex>; diff --git a/src/protocol/commands/_qXfer_exec_file.rs b/src/protocol/commands/_qXfer_exec_file.rs index 8280bda0..efcb8bc4 100644 --- a/src/protocol/commands/_qXfer_exec_file.rs +++ b/src/protocol/commands/_qXfer_exec_file.rs @@ -1,7 +1,7 @@ use super::prelude::*; - use crate::common::Pid; -use crate::protocol::common::qxfer::{ParseAnnex, QXferReadBase}; +use crate::protocol::common::qxfer::ParseAnnex; +use crate::protocol::common::qxfer::QXferReadBase; pub type qXferExecFileRead<'a> = QXferReadBase<'a, ExecFileAnnex>; diff --git a/src/protocol/commands/_qXfer_features_read.rs b/src/protocol/commands/_qXfer_features_read.rs index 73f96e59..6da9a722 100644 --- a/src/protocol/commands/_qXfer_features_read.rs +++ b/src/protocol/commands/_qXfer_features_read.rs @@ -1,6 +1,6 @@ // use super::prelude::*; // unused - -use crate::protocol::common::qxfer::{ParseAnnex, QXferReadBase}; +use crate::protocol::common::qxfer::ParseAnnex; +use crate::protocol::common::qxfer::QXferReadBase; pub type qXferFeaturesRead<'a> = QXferReadBase<'a, FeaturesAnnex<'a>>; diff --git a/src/protocol/commands/_qXfer_memory_map.rs b/src/protocol/commands/_qXfer_memory_map.rs index 169d1b4d..6496cdc7 100644 --- a/src/protocol/commands/_qXfer_memory_map.rs +++ b/src/protocol/commands/_qXfer_memory_map.rs @@ -1,6 +1,6 @@ // use super::prelude::*; // unused - -use crate::protocol::common::qxfer::{ParseAnnex, QXferReadBase}; +use crate::protocol::common::qxfer::ParseAnnex; +use crate::protocol::common::qxfer::QXferReadBase; pub type qXferMemoryMapRead<'a> = QXferReadBase<'a, MemoryMapAnnex>; diff --git a/src/protocol/commands/_t_upcase.rs b/src/protocol/commands/_t_upcase.rs index e7c46367..e6383301 100644 --- a/src/protocol/commands/_t_upcase.rs +++ b/src/protocol/commands/_t_upcase.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::thread_id::ThreadId; #[derive(Debug)] diff --git a/src/protocol/commands/_vAttach.rs b/src/protocol/commands/_vAttach.rs index 252db540..cfe026f5 100644 --- a/src/protocol/commands/_vAttach.rs +++ b/src/protocol/commands/_vAttach.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::common::Pid; #[derive(Debug)] diff --git a/src/protocol/commands/_vCont.rs b/src/protocol/commands/_vCont.rs index 1fe8d7a6..437fa4c7 100644 --- a/src/protocol/commands/_vCont.rs +++ b/src/protocol/commands/_vCont.rs @@ -1,8 +1,8 @@ use super::prelude::*; - use crate::common::Signal; use crate::protocol::common::hex::HexString; -use crate::protocol::common::thread_id::{SpecificThreadId, ThreadId}; +use crate::protocol::common::thread_id::SpecificThreadId; +use crate::protocol::common::thread_id::ThreadId; // TODO?: instead of lazily parsing data, parse the strings into a compressed // binary representations that can be stuffed back into the packet buffer and diff --git a/src/protocol/commands/_vFile_open.rs b/src/protocol/commands/_vFile_open.rs index 74979127..04a18287 100644 --- a/src/protocol/commands/_vFile_open.rs +++ b/src/protocol/commands/_vFile_open.rs @@ -1,6 +1,6 @@ use super::prelude::*; - -use crate::target::ext::host_io::{HostIoOpenFlags, HostIoOpenMode}; +use crate::target::ext::host_io::HostIoOpenFlags; +use crate::target::ext::host_io::HostIoOpenMode; #[derive(Debug)] pub struct vFileOpen<'a> { diff --git a/src/protocol/commands/_vFile_pwrite.rs b/src/protocol/commands/_vFile_pwrite.rs index 94cd34ab..32f45f1a 100644 --- a/src/protocol/commands/_vFile_pwrite.rs +++ b/src/protocol/commands/_vFile_pwrite.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::hex::decode_bin_buf; #[derive(Debug)] diff --git a/src/protocol/commands/_vFile_setfs.rs b/src/protocol/commands/_vFile_setfs.rs index 41a3100b..aacbc69a 100644 --- a/src/protocol/commands/_vFile_setfs.rs +++ b/src/protocol/commands/_vFile_setfs.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::target::ext::host_io::FsKind; #[derive(Debug)] diff --git a/src/protocol/commands/_vKill.rs b/src/protocol/commands/_vKill.rs index a1d687b0..c06818bc 100644 --- a/src/protocol/commands/_vKill.rs +++ b/src/protocol/commands/_vKill.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::common::Pid; #[derive(Debug)] diff --git a/src/protocol/commands/_vRun.rs b/src/protocol/commands/_vRun.rs index 849c7956..a4b619de 100644 --- a/src/protocol/commands/_vRun.rs +++ b/src/protocol/commands/_vRun.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::lists::ArgListHex; #[derive(Debug)] diff --git a/src/protocol/commands/_x_upcase.rs b/src/protocol/commands/_x_upcase.rs index 218c16c9..9467e5f6 100644 --- a/src/protocol/commands/_x_upcase.rs +++ b/src/protocol/commands/_x_upcase.rs @@ -1,5 +1,4 @@ use super::prelude::*; - use crate::protocol::common::hex::decode_bin_buf; #[derive(Debug)] diff --git a/src/protocol/commands/breakpoint.rs b/src/protocol/commands/breakpoint.rs index 38ad0461..b0a0e9db 100644 --- a/src/protocol/commands/breakpoint.rs +++ b/src/protocol/commands/breakpoint.rs @@ -1,4 +1,5 @@ -use crate::protocol::common::hex::{decode_hex, decode_hex_buf}; +use crate::protocol::common::hex::decode_hex; +use crate::protocol::common::hex::decode_hex_buf; // Breakpoint packets are split up like this: // diff --git a/src/protocol/common/hex.rs b/src/protocol/common/hex.rs index ade90328..6eb35e04 100644 --- a/src/protocol/common/hex.rs +++ b/src/protocol/common/hex.rs @@ -1,4 +1,7 @@ -use num_traits::{CheckedAdd, CheckedMul, FromPrimitive, Zero}; +use num_traits::CheckedAdd; +use num_traits::CheckedMul; +use num_traits::FromPrimitive; +use num_traits::Zero; #[derive(Debug)] pub enum DecodeHexError { diff --git a/src/protocol/common/lists.rs b/src/protocol/common/lists.rs index 5dfdab78..1f2bc88a 100644 --- a/src/protocol/common/lists.rs +++ b/src/protocol/common/lists.rs @@ -1,4 +1,5 @@ -use crate::protocol::common::hex::{decode_hex_buf, is_hex}; +use crate::protocol::common::hex::decode_hex_buf; +use crate::protocol::common::hex::is_hex; /// A wrapper type around a list of hex encoded arguments separated by `;`. #[derive(Debug)] diff --git a/src/protocol/common/thread_id.rs b/src/protocol/common/thread_id.rs index 36a3ea90..e1104d3e 100644 --- a/src/protocol/common/thread_id.rs +++ b/src/protocol/common/thread_id.rs @@ -1,7 +1,7 @@ -use core::convert::{TryFrom, TryInto}; -use core::num::NonZeroUsize; - use crate::protocol::common::hex::decode_hex; +use core::convert::TryFrom; +use core::convert::TryInto; +use core::num::NonZeroUsize; /// Tid/Pid Selector. #[derive(PartialEq, Eq, Debug, Clone, Copy)] diff --git a/src/protocol/console_output.rs b/src/protocol/console_output.rs index 16b30aab..54774bec 100644 --- a/src/protocol/console_output.rs +++ b/src/protocol/console_output.rs @@ -1,7 +1,6 @@ -use core::fmt; - #[cfg(feature = "alloc")] use alloc::vec::Vec; +use core::fmt; /// Helper struct to send console output to GDB. /// diff --git a/src/protocol/mod.rs b/src/protocol/mod.rs index 6dd8166a..3ea5a033 100644 --- a/src/protocol/mod.rs +++ b/src/protocol/mod.rs @@ -3,6 +3,9 @@ //! These types should _not_ leak into the public interface (with a few //! exceptions, as listed below). +pub use console_output::ConsoleOutput; +pub use packet::PacketParseError; + mod common; mod console_output; mod packet; @@ -10,11 +13,10 @@ mod response_writer; pub(crate) mod commands; pub(crate) mod recv_packet; - -pub(crate) use common::thread_id::{ConcreteThreadId, IdKind, SpecificIdKind, SpecificThreadId}; +pub(crate) use common::thread_id::ConcreteThreadId; +pub(crate) use common::thread_id::IdKind; +pub(crate) use common::thread_id::SpecificIdKind; +pub(crate) use common::thread_id::SpecificThreadId; pub(crate) use packet::Packet; -pub(crate) use response_writer::{Error as ResponseWriterError, ResponseWriter}; - -// These types end up a part of the public interface. -pub use console_output::ConsoleOutput; -pub use packet::PacketParseError; +pub(crate) use response_writer::Error as ResponseWriterError; +pub(crate) use response_writer::ResponseWriter; diff --git a/src/protocol/recv_packet.rs b/src/protocol/recv_packet.rs index 9f3b567a..f6e70031 100644 --- a/src/protocol/recv_packet.rs +++ b/src/protocol/recv_packet.rs @@ -1,10 +1,9 @@ +use crate::util::managed_vec::CapacityError; +use crate::util::managed_vec::ManagedVec; #[cfg(feature = "trace-pkt")] use alloc::string::String; - use managed::ManagedSlice; -use crate::util::managed_vec::{CapacityError, ManagedVec}; - enum State { Ready, Body, diff --git a/src/protocol/response_writer.rs b/src/protocol/response_writer.rs index 3dea22a5..42c2a20c 100644 --- a/src/protocol/response_writer.rs +++ b/src/protocol/response_writer.rs @@ -1,14 +1,14 @@ +use crate::conn::Connection; +use crate::internal::BeBytes; +use crate::protocol::SpecificIdKind; +use crate::protocol::SpecificThreadId; #[cfg(feature = "trace-pkt")] use alloc::string::String; #[cfg(feature = "trace-pkt")] use alloc::vec::Vec; - use num_traits::identities::one; -use num_traits::{CheckedRem, PrimInt}; - -use crate::conn::Connection; -use crate::internal::BeBytes; -use crate::protocol::{SpecificIdKind, SpecificThreadId}; +use num_traits::CheckedRem; +use num_traits::PrimInt; /// Newtype around a Connection error. Having a newtype allows implementing a /// `From> for crate::Error`, which greatly diff --git a/src/stub/builder.rs b/src/stub/builder.rs index bb1ceba1..fa9e5a2b 100644 --- a/src/stub/builder.rs +++ b/src/stub/builder.rs @@ -1,13 +1,11 @@ -use core::fmt::{self, Display}; -use core::marker::PhantomData; - -use managed::ManagedSlice; - -use crate::conn::Connection; -use crate::target::Target; - use super::core_impl::GdbStubImpl; use super::GdbStub; +use crate::conn::Connection; +use crate::target::Target; +use core::fmt::Display; +use core::fmt::{self}; +use core::marker::PhantomData; +use managed::ManagedSlice; /// An error which may occur when building a [`GdbStub`]. #[derive(Debug)] diff --git a/src/stub/core_impl.rs b/src/stub/core_impl.rs index c0bc193d..cf5bbb7c 100644 --- a/src/stub/core_impl.rs +++ b/src/stub/core_impl.rs @@ -1,12 +1,14 @@ -use core::marker::PhantomData; - -use crate::common::{Signal, Tid}; +use crate::common::Signal; +use crate::common::Tid; use crate::conn::Connection; use crate::protocol::commands::Command; -use crate::protocol::{Packet, ResponseWriter, SpecificIdKind}; +use crate::protocol::Packet; +use crate::protocol::ResponseWriter; +use crate::protocol::SpecificIdKind; use crate::stub::error::InternalError; use crate::target::Target; use crate::SINGLE_THREAD_TID; +use core::marker::PhantomData; /// Common imports used by >50% of all extensions. /// @@ -16,7 +18,8 @@ mod prelude { pub(super) use crate::internal::BeBytes; pub(super) use crate::protocol::ResponseWriter; pub(super) use crate::stub::core_impl::target_result_ext::TargetResultExt; - pub(super) use crate::stub::core_impl::{GdbStubImpl, HandlerStatus}; + pub(super) use crate::stub::core_impl::GdbStubImpl; + pub(super) use crate::stub::core_impl::HandlerStatus; pub(super) use crate::stub::error::InternalError as Error; pub(super) use crate::target::Target; } diff --git a/src/stub/core_impl/base.rs b/src/stub/core_impl/base.rs index 01e7c964..91102976 100644 --- a/src/stub/core_impl/base.rs +++ b/src/stub/core_impl/base.rs @@ -1,13 +1,17 @@ use super::prelude::*; -use crate::protocol::commands::ext::Base; - -use crate::arch::{Arch, Registers}; -use crate::common::{Pid, Tid}; -use crate::protocol::{IdKind, SpecificIdKind, SpecificThreadId}; -use crate::target::ext::base::{BaseOps, ResumeOps}; -use crate::{FAKE_PID, SINGLE_THREAD_TID}; - use super::DisconnectReason; +use crate::arch::Arch; +use crate::arch::Registers; +use crate::common::Pid; +use crate::common::Tid; +use crate::protocol::commands::ext::Base; +use crate::protocol::IdKind; +use crate::protocol::SpecificIdKind; +use crate::protocol::SpecificThreadId; +use crate::target::ext::base::BaseOps; +use crate::target::ext::base::ResumeOps; +use crate::FAKE_PID; +use crate::SINGLE_THREAD_TID; impl GdbStubImpl { #[inline(always)] diff --git a/src/stub/core_impl/breakpoints.rs b/src/stub/core_impl/breakpoints.rs index a54da71a..3b45eff8 100644 --- a/src/stub/core_impl/breakpoints.rs +++ b/src/stub/core_impl/breakpoints.rs @@ -1,8 +1,8 @@ use super::prelude::*; +use crate::arch::Arch; +use crate::arch::BreakpointKind; use crate::protocol::commands::ext::Breakpoints; -use crate::arch::{Arch, BreakpointKind}; - enum CmdKind { Add, Remove, diff --git a/src/stub/core_impl/catch_syscalls.rs b/src/stub/core_impl/catch_syscalls.rs index b7dde2ed..7f38222c 100644 --- a/src/stub/core_impl/catch_syscalls.rs +++ b/src/stub/core_impl/catch_syscalls.rs @@ -1,8 +1,7 @@ use super::prelude::*; -use crate::protocol::commands::ext::CatchSyscalls; - use crate::arch::Arch; use crate::protocol::commands::_QCatchSyscalls::QCatchSyscalls; +use crate::protocol::commands::ext::CatchSyscalls; use crate::target::ext::catch_syscalls::SyscallNumbers; impl GdbStubImpl { diff --git a/src/stub/core_impl/extended_mode.rs b/src/stub/core_impl/extended_mode.rs index fd569c2e..703b3f86 100644 --- a/src/stub/core_impl/extended_mode.rs +++ b/src/stub/core_impl/extended_mode.rs @@ -1,6 +1,5 @@ use super::prelude::*; use crate::protocol::commands::ext::ExtendedMode; - use crate::protocol::SpecificIdKind; use crate::protocol::SpecificThreadId; use crate::target::ext::base::BaseOps; diff --git a/src/stub/core_impl/host_io.rs b/src/stub/core_impl/host_io.rs index 4ea6b1a9..f62bf662 100644 --- a/src/stub/core_impl/host_io.rs +++ b/src/stub/core_impl/host_io.rs @@ -1,8 +1,8 @@ use super::prelude::*; -use crate::protocol::commands::ext::HostIo; - use crate::arch::Arch; -use crate::target::ext::host_io::{HostIoError, HostIoStat}; +use crate::protocol::commands::ext::HostIo; +use crate::target::ext::host_io::HostIoError; +use crate::target::ext::host_io::HostIoStat; impl GdbStubImpl { pub(crate) fn handle_host_io( diff --git a/src/stub/core_impl/lldb_register_info.rs b/src/stub/core_impl/lldb_register_info.rs index 2b27f7ce..676991da 100644 --- a/src/stub/core_impl/lldb_register_info.rs +++ b/src/stub/core_impl/lldb_register_info.rs @@ -1,8 +1,11 @@ use super::prelude::*; -use crate::protocol::commands::ext::LldbRegisterInfo; - -use crate::arch::lldb::{Encoding, Format, Generic, Register, RegisterInfo as LLDBRegisterInfo}; +use crate::arch::lldb::Encoding; +use crate::arch::lldb::Format; +use crate::arch::lldb::Generic; +use crate::arch::lldb::Register; +use crate::arch::lldb::RegisterInfo as LLDBRegisterInfo; use crate::arch::Arch; +use crate::protocol::commands::ext::LldbRegisterInfo; impl GdbStubImpl { pub(crate) fn handle_lldb_register_info( @@ -112,9 +115,8 @@ impl GdbStubImpl { } }; if let Some(ops) = target.support_lldb_register_info_override() { - use crate::target::ext::lldb_register_info_override::{ - Callback, CallbackToken, - }; + use crate::target::ext::lldb_register_info_override::Callback; + use crate::target::ext::lldb_register_info_override::CallbackToken; ops.lldb_register_info( cmd.reg_id, diff --git a/src/stub/core_impl/monitor_cmd.rs b/src/stub/core_impl/monitor_cmd.rs index 50425a25..e4cfc1e9 100644 --- a/src/stub/core_impl/monitor_cmd.rs +++ b/src/stub/core_impl/monitor_cmd.rs @@ -1,6 +1,5 @@ use super::prelude::*; use crate::protocol::commands::ext::MonitorCmd; - use crate::protocol::ConsoleOutput; impl GdbStubImpl { diff --git a/src/stub/core_impl/resume.rs b/src/stub/core_impl/resume.rs index d3d66bf4..1a06e0be 100644 --- a/src/stub/core_impl/resume.rs +++ b/src/stub/core_impl/resume.rs @@ -1,17 +1,17 @@ use super::prelude::*; -use crate::protocol::commands::ext::Resume; - +use super::DisconnectReason; use crate::arch::Arch; -use crate::common::{Signal, Tid}; +use crate::common::Signal; +use crate::common::Tid; use crate::protocol::commands::_vCont::Actions; -use crate::protocol::{SpecificIdKind, SpecificThreadId}; +use crate::protocol::commands::ext::Resume; +use crate::protocol::SpecificIdKind; +use crate::protocol::SpecificThreadId; use crate::stub::MultiThreadStopReason; use crate::target::ext::base::reverse_exec::ReplayLogPosition; use crate::target::ext::base::ResumeOps; use crate::target::ext::catch_syscalls::CatchSyscallPosition; -use super::DisconnectReason; - impl GdbStubImpl { pub(crate) fn handle_stop_resume( &mut self, diff --git a/src/stub/core_impl/reverse_exec.rs b/src/stub/core_impl/reverse_exec.rs index 7b85d389..e7269a3a 100644 --- a/src/stub/core_impl/reverse_exec.rs +++ b/src/stub/core_impl/reverse_exec.rs @@ -1,12 +1,11 @@ use super::prelude::*; -use crate::protocol::commands::ext::{ReverseCont, ReverseStep}; - use crate::arch::Arch; use crate::common::Tid; +use crate::protocol::commands::ext::ReverseCont; +use crate::protocol::commands::ext::ReverseStep; use crate::protocol::SpecificIdKind; -use crate::target::ext::base::reverse_exec::{ - ReverseCont as ReverseContTrait, ReverseStep as ReverseStepTrait, -}; +use crate::target::ext::base::reverse_exec::ReverseCont as ReverseContTrait; +use crate::target::ext::base::reverse_exec::ReverseStep as ReverseStepTrait; use crate::target::ext::base::ResumeOps; macro_rules! defn_ops { diff --git a/src/stub/core_impl/single_register_access.rs b/src/stub/core_impl/single_register_access.rs index 954a634c..093e7f54 100644 --- a/src/stub/core_impl/single_register_access.rs +++ b/src/stub/core_impl/single_register_access.rs @@ -1,7 +1,7 @@ use super::prelude::*; +use crate::arch::Arch; +use crate::arch::RegId; use crate::protocol::commands::ext::SingleRegisterAccess; - -use crate::arch::{Arch, RegId}; use crate::target::ext::base::BaseOps; impl GdbStubImpl { diff --git a/src/stub/core_impl/target_xml.rs b/src/stub/core_impl/target_xml.rs index 2650ad2b..bf3fc5c5 100644 --- a/src/stub/core_impl/target_xml.rs +++ b/src/stub/core_impl/target_xml.rs @@ -1,7 +1,6 @@ use super::prelude::*; -use crate::protocol::commands::ext::TargetXml; - use crate::arch::Arch; +use crate::protocol::commands::ext::TargetXml; impl GdbStubImpl { pub(crate) fn handle_target_xml( diff --git a/src/stub/core_impl/x_upcase_packet.rs b/src/stub/core_impl/x_upcase_packet.rs index 9d865e5e..aa36a44e 100644 --- a/src/stub/core_impl/x_upcase_packet.rs +++ b/src/stub/core_impl/x_upcase_packet.rs @@ -1,7 +1,6 @@ use super::prelude::*; -use crate::protocol::commands::ext::XUpcasePacket; - use crate::arch::Arch; +use crate::protocol::commands::ext::XUpcasePacket; use crate::target::ext::base::BaseOps; impl GdbStubImpl { diff --git a/src/stub/error.rs b/src/stub/error.rs index bde467f0..8cdc18ef 100644 --- a/src/stub/error.rs +++ b/src/stub/error.rs @@ -1,7 +1,9 @@ -use core::fmt::{self, Debug, Display}; - -use crate::protocol::{PacketParseError, ResponseWriterError}; +use crate::protocol::PacketParseError; +use crate::protocol::ResponseWriterError; use crate::util::managed_vec::CapacityError; +use core::fmt::Debug; +use core::fmt::Display; +use core::fmt::{self}; /// An error that may occur while interacting with a /// [`Connection`](crate::conn::Connection). diff --git a/src/stub/mod.rs b/src/stub/mod.rs index 978cb412..b98c1901 100644 --- a/src/stub/mod.rs +++ b/src/stub/mod.rs @@ -1,11 +1,14 @@ //! The core [`GdbStub`] type, used to drive a GDB debugging session for a //! particular [`Target`] over a given [`Connection`]. -use managed::ManagedSlice; - -use self::error::InternalError; -use crate::conn::{Connection, ConnectionExt}; -use crate::target::Target; +pub use builder::GdbStubBuilder; +pub use builder::GdbStubBuilderError; +pub use core_impl::DisconnectReason; +pub use error::GdbStubError; +pub use stop_reason::BaseStopReason; +pub use stop_reason::IntoStopReason; +pub use stop_reason::MultiThreadStopReason; +pub use stop_reason::SingleThreadStopReason; mod builder; mod core_impl; @@ -14,17 +17,15 @@ mod stop_reason; pub mod state_machine; -pub use builder::{GdbStubBuilder, GdbStubBuilderError}; -pub use core_impl::DisconnectReason; -pub use error::GdbStubError; -pub use stop_reason::{ - BaseStopReason, IntoStopReason, MultiThreadStopReason, SingleThreadStopReason, -}; +use self::error::InternalError; +use crate::conn::Connection; +use crate::conn::ConnectionExt; +use crate::target::Target; +use managed::ManagedSlice; /// Types and traits related to the [`GdbStub::run_blocking`] interface. pub mod run_blocking { use super::*; - use crate::conn::ConnectionExt; /// A set of user-provided methods required to run a GDB debugging session @@ -184,7 +185,8 @@ impl<'a, T: Target, C: Connection> GdbStub<'a, T, C> { } state_machine::GdbStubStateMachine::Running(mut gdb) => { - use run_blocking::{Event as BlockingEventLoopEvent, WaitForStopReasonError}; + use run_blocking::Event as BlockingEventLoopEvent; + use run_blocking::WaitForStopReasonError; // block waiting for the target to return a stop reason let event = E::wait_for_stop_reason(target, gdb.borrow_conn()); diff --git a/src/stub/state_machine.rs b/src/stub/state_machine.rs index e30dfde0..7b623dd9 100644 --- a/src/stub/state_machine.rs +++ b/src/stub/state_machine.rs @@ -33,19 +33,21 @@ //! [`BlockingEventLoop`]: super::run_blocking::BlockingEventLoop //! [`GdbStub::run_blocking`]: super::GdbStub::run_blocking -use managed::ManagedSlice; - +use super::core_impl::FinishExecStatus; +use super::core_impl::GdbStubImpl; +use super::core_impl::State; +use super::DisconnectReason; +use super::GdbStub; use crate::arch::Arch; use crate::conn::Connection; use crate::protocol::recv_packet::RecvPacketStateMachine; -use crate::protocol::{Packet, ResponseWriter}; +use crate::protocol::Packet; +use crate::protocol::ResponseWriter; use crate::stub::error::GdbStubError; use crate::stub::error::InternalError; use crate::stub::stop_reason::IntoStopReason; use crate::target::Target; - -use super::core_impl::{FinishExecStatus, GdbStubImpl, State}; -use super::{DisconnectReason, GdbStub}; +use managed::ManagedSlice; /// State-machine interface to `GdbStub`. /// @@ -79,7 +81,6 @@ where // payloads, which are used when transitioning between states. pub mod state { use super::*; - use crate::stub::stop_reason::MultiThreadStopReason; // used internally when logging state transitions diff --git a/src/target/ext/auxv.rs b/src/target/ext/auxv.rs index c801af26..8760439f 100644 --- a/src/target/ext/auxv.rs +++ b/src/target/ext/auxv.rs @@ -1,5 +1,6 @@ //! Access the target’s auxiliary vector. -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Access the target’s auxiliary vector. pub trait Auxv: Target { diff --git a/src/target/ext/base/multithread.rs b/src/target/ext/base/multithread.rs index 66e08406..e2293fd8 100644 --- a/src/target/ext/base/multithread.rs +++ b/src/target/ext/base/multithread.rs @@ -3,7 +3,8 @@ use crate::arch::Arch; use crate::common::Signal; use crate::common::Tid; -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Base required debugging operations for multi threaded targets. pub trait MultiThreadBase: Target { diff --git a/src/target/ext/base/single_register_access.rs b/src/target/ext/base/single_register_access.rs index 2887feff..efe06c0c 100644 --- a/src/target/ext/base/single_register_access.rs +++ b/src/target/ext/base/single_register_access.rs @@ -1,7 +1,8 @@ //! Support for single-register read/write access. use crate::arch::Arch; -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Support for single-register access. /// diff --git a/src/target/ext/base/singlethread.rs b/src/target/ext/base/singlethread.rs index 1da17053..40b002e0 100644 --- a/src/target/ext/base/singlethread.rs +++ b/src/target/ext/base/singlethread.rs @@ -2,7 +2,8 @@ use crate::arch::Arch; use crate::common::Signal; -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Base required debugging operations for single threaded targets. pub trait SingleThreadBase: Target { diff --git a/src/target/ext/breakpoints.rs b/src/target/ext/breakpoints.rs index 8b40a04a..cd44d992 100644 --- a/src/target/ext/breakpoints.rs +++ b/src/target/ext/breakpoints.rs @@ -1,7 +1,8 @@ //! Add/Remove various kinds of breakpoints. use crate::arch::Arch; -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Set/Remove Breakpoints. pub trait Breakpoints: Target { diff --git a/src/target/ext/catch_syscalls.rs b/src/target/ext/catch_syscalls.rs index 694d8ad9..b5f0ee97 100644 --- a/src/target/ext/catch_syscalls.rs +++ b/src/target/ext/catch_syscalls.rs @@ -1,7 +1,8 @@ //! Enable or disable catching syscalls from the inferior process. use crate::arch::Arch; -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Enable and disable catching syscalls from the inferior /// process. diff --git a/src/target/ext/exec_file.rs b/src/target/ext/exec_file.rs index 0db98742..a819638a 100644 --- a/src/target/ext/exec_file.rs +++ b/src/target/ext/exec_file.rs @@ -1,7 +1,7 @@ //! Provide exec-file path for the target. -use crate::target::{Target, TargetResult}; - use crate::common::Pid; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Provide current exec-file. /// diff --git a/src/target/ext/extended_mode.rs b/src/target/ext/extended_mode.rs index 15fe16cb..2c162edf 100644 --- a/src/target/ext/extended_mode.rs +++ b/src/target/ext/extended_mode.rs @@ -3,7 +3,8 @@ //! spawning new processes and/or attaching to existing processes. use crate::common::*; -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Returned from `ExtendedMode::kill` /// diff --git a/src/target/ext/host_io.rs b/src/target/ext/host_io.rs index 131a12d0..b7412993 100644 --- a/src/target/ext/host_io.rs +++ b/src/target/ext/host_io.rs @@ -1,8 +1,7 @@ //! Provide Host I/O operations for the target. -use bitflags::bitflags; - use crate::arch::Arch; use crate::target::Target; +use bitflags::bitflags; bitflags! { /// Host flags for opening files. diff --git a/src/target/ext/memory_map.rs b/src/target/ext/memory_map.rs index 46ffd2ac..2b918ce2 100644 --- a/src/target/ext/memory_map.rs +++ b/src/target/ext/memory_map.rs @@ -1,5 +1,6 @@ //! Provide a memory map for the target. -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Read the target's memory map. pub trait MemoryMap: Target { diff --git a/src/target/ext/monitor_cmd.rs b/src/target/ext/monitor_cmd.rs index 5317e673..c4bd20ea 100644 --- a/src/target/ext/monitor_cmd.rs +++ b/src/target/ext/monitor_cmd.rs @@ -1,10 +1,11 @@ //! Create custom target-specific debugging commands accessible via GDB's //! `monitor` command! -use crate::target::Target; - +pub use crate::output; +pub use crate::outputln; pub use crate::protocol::ConsoleOutput; -pub use crate::{output, outputln}; + +use crate::target::Target; /// Target Extension - Handle custom GDB `monitor` commands. pub trait MonitorCmd: Target { diff --git a/src/target/ext/target_description_xml_override.rs b/src/target/ext/target_description_xml_override.rs index 7cb9011b..79174b31 100644 --- a/src/target/ext/target_description_xml_override.rs +++ b/src/target/ext/target_description_xml_override.rs @@ -1,5 +1,6 @@ //! Override the target description XML specified by `Target::Arch`. -use crate::target::{Target, TargetResult}; +use crate::target::Target; +use crate::target::TargetResult; /// Target Extension - Override the target description XML specified by /// `Target::Arch`.