(
assembled: &AssembledOutput,
entry_symbol: &str,
load_base: u64,
max_steps: u64,
)
| 1356 | // Hosted and freestanding share the launch path; the session |
| 1357 | // constructor picks the bare-metal VM from the config kind. |
| 1358 | RunKind::Hosted | RunKind::Freestanding => match engine.build_config(&config) { |
| 1359 | Ok(build) => { |
| 1360 | self.report_linked_build(&build); |
| 1361 | self.start_hosted_live_session(&config, &build, now, debug); |
| 1362 | self.store_launch_cache(&config, CachedLaunch::Hosted(Box::new(build))); |
| 1363 | } |
| 1364 | Err(err) => { |
| 1365 | self.status_message = Some("run failed".to_owned()); |
| 1366 | self.terminal.push(ConsoleStream::Error, err.to_string()); |
| 1367 | } |
| 1368 | }, |
| 1369 | RunKind::KernelBoot => match engine.boot_kernel_config(&config) { |
| 1370 | Ok(boot) => { |
| 1371 | self.report_linked_build(&boot.build); |
| 1372 | self.terminal.push( |
| 1373 | ConsoleStream::Success, |
| 1374 | format!( |
| 1375 | "Built boot FS: {} entries, {} byte image.", |
| 1376 | boot.fs_entries.len(), |
| 1377 | boot.fs_image.len() |
| 1378 | ), |
| 1379 | ); |
| 1380 | self.start_kernel_live_session( |
| 1381 | &config, |
| 1382 | &boot.build, |
| 1383 | &boot.init, |
| 1384 | &boot.fs_image, |
| 1385 | now, |
| 1386 | debug, |
| 1387 | ); |
| 1388 | self.store_launch_cache(&config, CachedLaunch::Kernel(Box::new(boot))); |
| 1389 | } |
| 1390 | Err(err) => { |
no test coverage detected