mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-12 23:06:51 +00:00
Allow debugging with KVM enabled
This commit is contained in:
parent
42aac5ce8b
commit
91d524c19a
@ -93,3 +93,6 @@ Your previous launch configs will be restored after the server is down.
|
|||||||
Press `F5`(Run and Debug) to start a debug session via VS Code.
|
Press `F5`(Run and Debug) to start a debug session via VS Code.
|
||||||
Click `Continue`(or, press `F5`) at the fisrt break to resume the paused server instance,
|
Click `Continue`(or, press `F5`) at the fisrt break to resume the paused server instance,
|
||||||
then it will continue until reaching your first breakpoint.
|
then it will continue until reaching your first breakpoint.
|
||||||
|
|
||||||
|
Note that if debugging with KVM enabled, you must use hardware assisted breakpoints. See "hbreak" in
|
||||||
|
[the GDB manual](https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_28.html) for details.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use super::{build::create_base_and_cached_build, util::DEFAULT_TARGET_RELPATH};
|
use super::{build::create_base_and_cached_build, util::DEFAULT_TARGET_RELPATH};
|
||||||
use crate::{
|
use crate::{
|
||||||
cli::GdbServerArgs,
|
cli::GdbServerArgs,
|
||||||
config::{scheme::ActionChoice, unix_args::split_to_kv_array, Config},
|
config::{scheme::ActionChoice, Config},
|
||||||
util::{get_current_crate_info, get_target_directory},
|
util::{get_current_crate_info, get_target_directory},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -41,20 +41,6 @@ pub fn execute_run_command(config: &Config, gdb_server_args: &GdbServerArgs) {
|
|||||||
};
|
};
|
||||||
config.run.qemu.args += &qemu_gdb_args;
|
config.run.qemu.args += &qemu_gdb_args;
|
||||||
|
|
||||||
// FIXME: Disable KVM from QEMU args in debug mode.
|
|
||||||
// Currently, the QEMU GDB server does not work properly with KVM enabled.
|
|
||||||
let mut splitted = split_to_kv_array(&config.run.qemu.args);
|
|
||||||
let args_num = splitted.len();
|
|
||||||
splitted.retain(|x| !x.contains("kvm"));
|
|
||||||
if splitted.len() != args_num {
|
|
||||||
println!(
|
|
||||||
"[WARNING] KVM is forced to be disabled in GDB server currently. \
|
|
||||||
Options related with KVM are ignored."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
config.run.qemu.args = splitted.join(" ");
|
|
||||||
|
|
||||||
// Ensure debug info added when debugging in the release profile.
|
// Ensure debug info added when debugging in the release profile.
|
||||||
if config.run.build.profile.contains("release") {
|
if config.run.build.profile.contains("release") {
|
||||||
config
|
config
|
||||||
|
Loading…
x
Reference in New Issue
Block a user