use dscode_dap::{DebugAdapterPool, DebugManager, SourceBreakpoint};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let pool = DebugAdapterPool::new();
pool
.register_adapter(
"cppdbg".to_string(),
"/usr/bin/gdb".to_string(),
vec!["--interpreter=dap".to_string()],
)
.await;
let manager = DebugManager::new();
let session_id = manager.create_session("main".to_string(), "cppdbg".to_string())?;
let session = manager.get_session(&session_id).unwrap();
let adapter = pool.create_session(session).await?;
adapter.initialize().await?;
adapter
.set_breakpoints(
serde_json::json!({ "path": "/path/to/source.cpp" }),
vec![SourceBreakpoint {
line: 10,
column: None,
condition: None,
hit_condition: None,
log_message: None,
}],
)
.await?;
println!("Debug session initialized with breakpoints.");
Ok(())
}