Enum probe_rs::DebugProbeError
source · pub enum DebugProbeError {
Show 17 variants
Usb(Option<Box<dyn Error + Send + Sync>>),
ProbeFirmwareOutdated,
ProbeSpecific(Box<dyn Error + Send + Sync>),
ProbeCouldNotBeCreated(ProbeCreationError),
UnsupportedProtocol(WireProtocol),
InterfaceNotAvailable(&'static str),
Registry(RegistryError),
UnsupportedSpeed(u32),
NotAttached,
Attached,
TargetNotFound,
NotImplemented(&'static str),
DebugSequenceNotSupported(&'static str),
BatchError(BatchCommand),
CommandNotSupportedByProbe(&'static str),
Other(Error),
Timeout,
}
Expand description
This error occurs whenever the debug probe logic encounters an error while operating the relevant debug probe.
Variants§
Usb(Option<Box<dyn Error + Send + Sync>>)
Something with the USB communication went wrong.
ProbeFirmwareOutdated
The firmware of the probe is outdated. This error is especially prominent with ST-Links. You can use their official updater utility to update your probe firmware.
ProbeSpecific(Box<dyn Error + Send + Sync>)
An error which is specific to the debug probe in use occurred.
ProbeCouldNotBeCreated(ProbeCreationError)
The debug probe handle could not be created as specified.
UnsupportedProtocol(WireProtocol)
The selected wire protocol is not supported with given probe.
InterfaceNotAvailable(&'static str)
The selected probe does not support the selected interface. This happens if a probe does not support certain functionality, such as:
- ARM debugging
- RISC-V debugging
- SWO
Registry(RegistryError)
Some interaction with the target registry failed. This happens when an invalid chip name is given for example.
UnsupportedSpeed(u32)
The debug probe does not support the speed that was chosen. Try to alter the selected speed.
NotAttached
The debug probe did not yet perform the init sequence.
Try calling DebugProbe::attach
before trying again.
Attached
The debug probe already performed the init sequence.
Try runnoing the failing command before DebugProbe::attach
.
TargetNotFound
Performing the init sequence on the target failed. Check the wiring before continuing.
NotImplemented(&'static str)
The variant of the function you called is not yet implemented. This can happen if some debug probe has some unimplemented functionality for a specific protocol or architecture.
DebugSequenceNotSupported(&'static str)
The called debug sequence is not supported on given probe. This is most likely happening because you are using an ST-Link, which are severely limited in functionality. If possible, try using another probe.
BatchError(BatchCommand)
An error occurred during the previously batched command.
CommandNotSupportedByProbe(&'static str)
The used functionality is not supported by the selected probe. This can happen when a probe does not allow for setting speed manually for example.
Other(Error)
Some other error occurred.
Timeout
A timeout occured during probe operation.
Trait Implementations§
source§impl Debug for DebugProbeError
impl Debug for DebugProbeError
source§impl Display for DebugProbeError
impl Display for DebugProbeError
source§impl Error for DebugProbeError
impl Error for DebugProbeError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<DebugProbeError> for AccessPortError
impl From<DebugProbeError> for AccessPortError
source§fn from(source: DebugProbeError) -> Self
fn from(source: DebugProbeError) -> Self
source§impl From<DebugProbeError> for ArmError
impl From<DebugProbeError> for ArmError
source§fn from(source: DebugProbeError) -> Self
fn from(source: DebugProbeError) -> Self
source§impl From<DebugProbeError> for DebugPortError
impl From<DebugProbeError> for DebugPortError
source§fn from(source: DebugProbeError) -> Self
fn from(source: DebugProbeError) -> Self
source§impl From<DebugProbeError> for Error
impl From<DebugProbeError> for Error
source§fn from(source: DebugProbeError) -> Self
fn from(source: DebugProbeError) -> Self
source§impl From<DebugProbeError> for RiscvError
impl From<DebugProbeError> for RiscvError
source§fn from(source: DebugProbeError) -> Self
fn from(source: DebugProbeError) -> Self
source§impl From<Error> for DebugProbeError
impl From<Error> for DebugProbeError
source§fn from(e: Error) -> DebugProbeError
fn from(e: Error) -> DebugProbeError
source§impl From<Error> for DebugProbeError
impl From<Error> for DebugProbeError
source§impl From<ProbeCreationError> for DebugProbeError
impl From<ProbeCreationError> for DebugProbeError
source§fn from(source: ProbeCreationError) -> Self
fn from(source: ProbeCreationError) -> Self
source§impl From<RegistryError> for DebugProbeError
impl From<RegistryError> for DebugProbeError
source§fn from(source: RegistryError) -> Self
fn from(source: RegistryError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for DebugProbeError
impl Send for DebugProbeError
impl Sync for DebugProbeError
impl Unpin for DebugProbeError
impl !UnwindSafe for DebugProbeError
Blanket Implementations§
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.