我正在 Rust 中制作裸机应用程序。我可以轻松地让任何给定的结构打印其调试信息,但我希望其中一些以十六进制打印它们的一些值。
例如:
impl core::fmt::Debug for Task {
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
fmt.debug_struct("Task")
// ...
.field("SP", &self.context.sp)
.field("KSP", &self.context.ksp)
// ...
.finish()
}
}
我无法弄清楚如何制作sp
和ksp
(两者i64
)都打印为十六进制数字。我的第一个想法是以某种方式使用format!
宏,但由于我使用的是#![no_std]
,我无权访问它。
如何使调试输出以十六进制打印这些值?