gdb_session/
gdb_session.rs1use dscode_dap::{DebugAdapterPool, DebugManager, SourceBreakpoint};
6
7#[tokio::main]
8async fn main() -> Result<(), Box<dyn std::error::Error>> {
9 let pool = DebugAdapterPool::new();
11 pool
12 .register_adapter(
13 "cppdbg".to_string(),
14 "/usr/bin/gdb".to_string(),
15 vec!["--interpreter=dap".to_string()],
16 )
17 .await;
18
19 let manager = DebugManager::new();
21 let session_id = manager.create_session("main".to_string(), "cppdbg".to_string())?;
22 let session = manager.get_session(&session_id).unwrap();
23
24 let adapter = pool.create_session(session).await?;
26
27 adapter.initialize().await?;
29 adapter
30 .set_breakpoints(
31 serde_json::json!({ "path": "/path/to/source.cpp" }),
32 vec![SourceBreakpoint {
33 line: 10,
34 column: None,
35 condition: None,
36 hit_condition: None,
37 log_message: None,
38 }],
39 )
40 .await?;
41
42 println!("Debug session initialized with breakpoints.");
43 Ok(())
44}