mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-22 17:03:23 +00:00
34 lines
986 B
Rust
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"));
|
|
}
|