From e3bdc24731a845580fa1ec292bcb42bbaca2915e Mon Sep 17 00:00:00 2001 From: Mark Poliakov Date: Thu, 30 Jan 2025 21:05:57 +0200 Subject: [PATCH] debug: change logging format --- kernel/libk/src/debug.rs | 38 +++++++++++++++++++++----------------- lib/abi/src/process/mod.rs | 2 +- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/kernel/libk/src/debug.rs b/kernel/libk/src/debug.rs index 4b1e6cce..f998e5de 100644 --- a/kernel/libk/src/debug.rs +++ b/kernel/libk/src/debug.rs @@ -33,6 +33,7 @@ use crate::{ object::KObject, }, task::{process::Process, thread::Thread}, + time::monotonic_time, }; const MAX_DEBUG_SINKS: usize = 8; @@ -160,7 +161,6 @@ impl log::Log for DebugSinkWrapper { let level = LogLevel::from(record.level()); let sink = self.sink(); let cpu = Cpu::try_local().map(|c| c.id()); - let file = record.file().unwrap_or(""); let line = record.line().unwrap_or(0); let args = record.args(); @@ -171,25 +171,30 @@ impl log::Log for DebugSinkWrapper { }; let mut writer = SinkWriter { sink }; + let now = monotonic_time(); + let s = now.seconds(); match record.target() { - "program" => { - write!(writer, "{args}").ok(); - } - "raw" => { - write!(writer, "{prefix}{args}{suffix}").ok(); - } - "io" => { - writeln!(writer, "[io] {args}").ok(); - } - _ => { - write!(writer, "{prefix}").ok(); + ":program" => { + write!(writer, "{prefix}{s:06}:").ok(); if let Some(cpu) = cpu { write!(writer, "{cpu}:").ok(); } else { write!(writer, "?:").ok(); } - writeln!(writer, "{file}:{line}: {args}{suffix}").ok(); + write!(writer, "ptrace:{args}").ok(); + } + ":raw" => { + write!(writer, "{prefix}{args}{suffix}").ok(); + } + target => { + write!(writer, "{prefix}{s:06}:").ok(); + if let Some(cpu) = cpu { + write!(writer, "{cpu}:").ok(); + } else { + write!(writer, "?:").ok(); + } + writeln!(writer, "{target}:{line}: {args}{suffix}").ok(); } } } @@ -429,11 +434,10 @@ pub fn disable_early_sinks() { /// Print a trace message coming from a process pub fn program_trace(process: &Process, thread: &Thread, message: &str) { log::debug!( - target: "program", - "[trace {}:{}:{:?}] {message}\n", + target: ":program", + "{} ({}) {message}\n", + process.name, process.id, - thread.id, - *thread.name.read() ); } diff --git a/lib/abi/src/process/mod.rs b/lib/abi/src/process/mod.rs index 36cd0153..5c9402f0 100644 --- a/lib/abi/src/process/mod.rs +++ b/lib/abi/src/process/mod.rs @@ -134,7 +134,7 @@ impl ProcessId { impl fmt::Display for ProcessId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "", self.0) + write!(f, "{}", self.0) } }