Files
asterinas/osdk/src/commands/debug.rs
2025-06-18 16:13:52 +08:00

34 lines
986 B
Rust

// SPDX-License-Identifier: MPL-2.0
use crate::{
cli::DebugArgs,
commands::util::bin_file_name,
util::{get_kernel_crate, get_target_directory, new_command_checked_exists},
};
pub fn execute_debug_command(_profile: &str, args: &DebugArgs) {
let remote = &args.remote;
let file_path = get_target_directory()
.join("osdk")
.join(get_kernel_crate().name)
.join(bin_file_name());
println!("Debugging {}", file_path.display());
let mut gdb = new_command_checked_exists("gdb");
gdb.args([
format!("{}", file_path.display()).as_str(),
"-ex",
format!("target remote {}", remote).as_str(),
]);
gdb.status().unwrap();
}
#[test]
fn have_gdb_installed() {
let output = new_command_checked_exists("gdb").arg("--version").output();
assert!(output.is_ok(), "Failed to run gdb");
let stdout = String::from_utf8_lossy(&output.unwrap().stdout).to_string();
assert!(stdout.contains("GNU gdb"));
}