From ac2272fe800fab337965233d1976d9e913f3b75f Mon Sep 17 00:00:00 2001 From: Matt Keeter Date: Wed, 9 Oct 2024 15:31:29 -0400 Subject: [PATCH] Better backtraces from stack overflows (#509) This PR adds a new --guess argument to humility tasks, which tries to use the saved frame pointer to get a stack trace under exceptional circumstances. I deliberately implemented it as a suspicious-sounding flag instead of an automatic fallback, because it may not be 100% reliable (but it looks fine in all of the unit tests). --- cmd/tasks/src/lib.rs | 71 +++++++++++++++++++ cmd/test/src/lib.rs | 3 +- tests/cli_tests.rs | 2 +- tests/cmd/tasks-slvr/tasks-slvr.chilly.0.toml | 2 +- ...slvr.control_plane_agent.overflow.0.stdout | 24 +++++++ ...s-slvr.control_plane_agent.overflow.0.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.counters.0.toml | 2 +- ...s-slvr.duplicate_HostFlash_hash_REPLY.toml | 2 +- .../tasks-slvr/tasks-slvr.extern-regions.toml | 2 +- .../tasks-slvr.flash-ram-mismatch.0.toml | 2 +- .../tasks-slvr/tasks-slvr.host-panic.0.toml | 2 +- .../tasks-slvr/tasks-slvr.host-panic.1.toml | 2 +- .../tasks-slvr/tasks-slvr.host-panic.2.toml | 2 +- .../tasks-slvr/tasks-slvr.host-panic.3.toml | 2 +- .../tasks-slvr/tasks-slvr.host-panic.4.toml | 2 +- .../tasks-slvr.idol-returns-an-enum.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.igor.0.toml | 2 +- .../tasks-slvr.in_bootloader.0.toml | 2 +- .../tasks-slvr/tasks-slvr.inheritance.0.toml | 2 +- .../tasks-slvr/tasks-slvr.ipc-counts.0.toml | 2 +- .../tasks-slvr/tasks-slvr.kernel-panic.0.toml | 2 +- .../tasks-slvr/tasks-slvr.kernel-panic.1.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.kiowa.0.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.kiowa.1.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.10.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.11.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.12.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.13.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.14.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.15.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.16.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.17.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.18.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.19.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.kiowa.2.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.20.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.21.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.22.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.23.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.24.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.25.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.26.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.27.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.28.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.29.toml | 2 +- .../tasks-slvr/tasks-slvr.kiowa.3.fails.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.30.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.31.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.4.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.49.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.kiowa.5.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.50.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.51.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.52.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.53.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.6.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.7.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.8.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.kiowa.9.toml | 2 +- .../tasks-slvr.kiowa.idol.qpsi.1.toml | 2 +- .../tasks-slvr/tasks-slvr.kiowa.rick.0.toml | 2 +- .../tasks-slvr.kiowa.stm32h743-nucleo.0.toml | 2 +- .../tasks-slvr/tasks-slvr.new-ringbuf.toml | 2 +- .../tasks-slvr/tasks-slvr.new-sensors.toml | 2 +- .../tasks-slvr.nightly-2022-11-01.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.0.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.0.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.1.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.1.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.10.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.10.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.11.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.11.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.12.stdout | 13 ++++ tests/cmd/tasks-slvr/tasks-slvr.ouray.12.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.13.stdout | 23 ++++++ tests/cmd/tasks-slvr/tasks-slvr.ouray.13.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.14.stdout | 9 +++ tests/cmd/tasks-slvr/tasks-slvr.ouray.14.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.15.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.15.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.16.stdout | 9 +++ tests/cmd/tasks-slvr/tasks-slvr.ouray.16.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.17.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.17.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.18.stdout | 4 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.18.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.19.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.19.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.2.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.2.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.20.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.20.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.21.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.21.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.22.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.22.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.23.stdout | 4 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.23.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.24.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.24.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.25.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.25.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.26.stdout | 4 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.26.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.27.stdout | 9 +++ tests/cmd/tasks-slvr/tasks-slvr.ouray.27.toml | 2 +- .../tasks-slvr/tasks-slvr.ouray.28.fails.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.29.stdout | 4 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.29.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.3.stdout | 4 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.3.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.30.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.30.toml | 2 +- .../tasks-slvr/tasks-slvr.ouray.31.fails.toml | 2 +- .../tasks-slvr/tasks-slvr.ouray.32.fails.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.33.stdout | 4 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.33.toml | 2 +- .../tasks-slvr/tasks-slvr.ouray.34.fails.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.35.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.36.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.37.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.38.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.39.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.4.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.4.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.40.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.41.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.42.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.43.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.44.stdout | 33 +++++++++ tests/cmd/tasks-slvr/tasks-slvr.ouray.44.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.45.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.46.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.47.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.48.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.49.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.5.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.5.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.50.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.51.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.52.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.53.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.54.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.55.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.6.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.6.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.61.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.62.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.63.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.64.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.65.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.66.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.67.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.68.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.69.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.7.stdout | 5 ++ tests/cmd/tasks-slvr/tasks-slvr.ouray.7.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.70.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.ouray.71.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.8.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.8.toml | 2 +- .../cmd/tasks-slvr/tasks-slvr.ouray.9.stdout | 2 + tests/cmd/tasks-slvr/tasks-slvr.ouray.9.toml | 2 +- .../tasks-slvr/tasks-slvr.panic-on-boot.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.spoopy.0.toml | 2 +- .../tasks-slvr/tasks-slvr.sprot_status.toml | 2 +- .../tasks-slvr/tasks-slvr.static-tasks.0.toml | 2 +- .../tasks-slvr/tasks-slvr.static-tasks.1.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.task.net.toml | 2 +- .../tasks-slvr/tasks-slvr.task.power.stdout | 35 +++++++++ .../cmd/tasks-slvr/tasks-slvr.task.power.toml | 2 +- .../tasks-slvr/tasks-slvr.u16-ringbuf.stdout | 8 +++ .../tasks-slvr/tasks-slvr.u16-ringbuf.toml | 2 +- tests/cmd/tasks-slvr/tasks-slvr.v6.toml | 2 +- 179 files changed, 473 insertions(+), 139 deletions(-) diff --git a/cmd/tasks/src/lib.rs b/cmd/tasks/src/lib.rs index 20b4c0047..636a72b88 100644 --- a/cmd/tasks/src/lib.rs +++ b/cmd/tasks/src/lib.rs @@ -135,6 +135,10 @@ struct TasksArgs { #[clap(long, short)] stack: bool, + /// use saved frame pointer to guess at stack trace + #[clap(long, requires = "stack")] + guess: bool, + /// show line number information with stack backtrace #[clap(long, short, requires = "stack")] line: bool, @@ -193,6 +197,7 @@ fn tasks(context: &mut ExecutionContext) -> Result<()> { subargs.registers, subargs.stack, subargs.line, + subargs.guess, subargs.spin, subargs.verbose, subargs.task, @@ -207,6 +212,7 @@ pub fn print_tasks( registers: bool, stack: bool, line: bool, + guess: bool, spin: bool, verbose: bool, task_arg: Option, @@ -426,6 +432,24 @@ pub fn print_tasks( } Err(e) => { writeln!(w, " could not read registers: {e:?}")?; + if stack { + if guess { + match stack_guess( + w, core, hubris, t, task_value, &desc, + ) { + Ok(stack) => printer.print(hubris, &stack), + Err(e) => writeln!( + w, + " stack unwind failed: {e:?}" + )?, + } + } else { + writeln!( + w, + " use `--guess` to guess at stack trace" + )?; + } + } } } } @@ -472,6 +496,53 @@ pub fn print_tasks( Ok(()) } +fn stack_guess<'a>( + w: &'a mut dyn Write, + core: &'a mut dyn Core, + hubris: &'a HubrisArchive, + t: HubrisTask, + task_value: &'a reflect::Value, + desc: &'a TaskDesc, +) -> Result>> { + writeln!(w, " guessing at stack trace using saved frame pointer")?; + let reflect::Value::Struct(s) = &task_value else { + bail!("invalid type for task_value") + }; + let Some(reflect::Value::Struct(save)) = s.get("save") else { + bail!("invalid type for save") + }; + let Some(reflect::Value::Base(reflect::Base::U32(addr))) = save.get("r7") + else { + bail!("invalid type for r7") + }; + let pc = core.read_word_32(*addr + 4)? & !1; + + let mut regs = BTreeMap::new(); + regs.insert(ARMRegister::R7, *addr); + regs.insert(ARMRegister::LR, *addr); + + // Provide a dummy stack value to pick the + // correct memory region + regs.insert(ARMRegister::SP, desc.initial_stack); + + // See if the previous instruction was a branch; + // if so, use that as a fake PC + regs.insert( + ARMRegister::PC, + if let Some(HubrisTarget::Call(t)) = + pc.checked_sub(4).and_then(|pc| hubris.instr_target(pc)) + { + t + 4 + } else { + pc + }, + ); + + let initial = desc.initial_stack; + + hubris.stack(core, t, initial, ®s) +} + #[derive(Copy, Clone, Debug)] enum Deadline { Absolute { t: u64, notif: u32 }, diff --git a/cmd/test/src/lib.rs b/cmd/test/src/lib.rs index 9aefc8747..117acfc3b 100644 --- a/cmd/test/src/lib.rs +++ b/cmd/test/src/lib.rs @@ -306,7 +306,8 @@ fn test(context: &mut ExecutionContext) -> Result<()> { writeln!(out, "==== Task state")?; cmd_tasks::print_tasks( - &mut out, core, hubris, false, false, false, false, false, None, + &mut out, core, hubris, false, false, false, false, false, false, + None, )?; } println!("Ran a total of {} cases", ran_cases); diff --git a/tests/cli_tests.rs b/tests/cli_tests.rs index d8c2bb5b9..e237bff9f 100644 --- a/tests/cli_tests.rs +++ b/tests/cli_tests.rs @@ -190,7 +190,7 @@ fn make_all_tests() -> Result<()> { Test::witharg(Kind::Postmortem, "sensors-read", "sensors", ""), Test::basic(Kind::Postmortem, "stackmargin"), Test::basic(Kind::Postmortem, "tasks"), - Test::witharg(Kind::Postmortem, "tasks-slvr", "tasks", "-slvr"), + Test::witharg(Kind::Postmortem, "tasks-slvr", "tasks", "-slvr --guess"), Test::basic(Kind::Postmortem, "counters"), Test::witharg(Kind::Postmortem, "counters-list", "counters", "list"), Test::witharg(Kind::Postmortem, "counters-full", "counters", "--full"), diff --git a/tests/cmd/tasks-slvr/tasks-slvr.chilly.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.chilly.0.toml index dc36f0d36..46bb2e231 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.chilly.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.chilly.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.chilly.0 tasks -slvr" +args = "-d hubris.core.chilly.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.stdout b/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.stdout index 57cd0016a..4d0b7fe0f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.stdout @@ -2,6 +2,30 @@ system time = 6193 ID TASK GEN PRI STATE 19 control_plane_agent 1 6 FAULT: stack overflow; sp=0x2402ff90 (was: ready) could not read registers: read of 32 bytes from invalid address: 0x2402ff90 + guessing at stack trace using saved frame pointer + | + +---> 0x24030090 0x08027790 drv_lpc55_update_api::_::::deserialize + | @ /hubris/drv/lpc55-update-api/src/lib.rs:102 + | 0x24030198 0x0802883c as core::ops::try_trait::Try>::branch + | @ /rustc/c52c23b6f44cd19718721a5e3b2eeb169e9c96ff/library/core/src/result.rs:1985 + | 0x24030198 0x0802882e hubpack::de::deserialize + | @ /home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hubpack-0.1.2/src/de.rs:22 + | 0x24030198 0x0802883c drv_sprot_api::SpRot::rot_boot_info + | 0x24030890 0x0801c218 ::sp_state + | @ /hubris/task/control-plane-agent/src/mgs_gimlet.rs:556 + | 0x24030890 0x0801c2aa gateway_messages::sp_impl::handle_mgs_request + | @ /git/management-gateway-service-749acba834b73294/1885b52/gateway-messages/src/sp_impl.rs:684 + | 0x24031000 0x08023c8c as core::ops::try_trait::Try>::branch + | @ /rustc/c52c23b6f44cd19718721a5e3b2eeb169e9c96ff/library/core/src/option.rs:2476 + | 0x24031000 0x08023628 gateway_messages::sp_impl::handle_message + | @ /git/management-gateway-service-749acba834b73294/1885b52/gateway-messages/src/sp_impl.rs:402 + | 0x24031000 0x08022b32 ::handle_notification + | @ /hubris/task/control-plane-agent/src/main.rs:253 + | 0x24031000 0x080229f8 idol_runtime::dispatch + | @ /git/idolatry-1ebf1c2fd2f30300/52c3758/runtime/src/lib.rs:228 + | 0x24031000 0x08023c8c main + | @ /hubris/task/control-plane-agent/src/main.rs:216 + | | +-----------> 0x24001108 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.toml index 3c7382ccf..89335835c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.control_plane_agent.overflow.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.control_plane_agent.overflow.0 tasks -slvr" +args = "-d hubris.core.control_plane_agent.overflow.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.counters.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.counters.0.toml index 7949e8e4e..be16a4b3c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.counters.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.counters.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.counters.0 tasks -slvr" +args = "-d hubris.core.counters.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.duplicate_HostFlash_hash_REPLY.toml b/tests/cmd/tasks-slvr/tasks-slvr.duplicate_HostFlash_hash_REPLY.toml index 86845dbc0..f4b0dfcd2 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.duplicate_HostFlash_hash_REPLY.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.duplicate_HostFlash_hash_REPLY.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.duplicate_HostFlash_hash_REPLY tasks -slvr" +args = "-d hubris.core.duplicate_HostFlash_hash_REPLY tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.extern-regions.toml b/tests/cmd/tasks-slvr/tasks-slvr.extern-regions.toml index f183be76d..32d976722 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.extern-regions.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.extern-regions.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.extern-regions tasks -slvr" +args = "-d hubris.core.extern-regions tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.flash-ram-mismatch.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.flash-ram-mismatch.0.toml index 4c54213d7..c228db11e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.flash-ram-mismatch.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.flash-ram-mismatch.0.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.flash-ram-mismatch.0 tasks -slvr" +args = "-d hubris.core.flash-ram-mismatch.0 tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.0.toml index 10ab0f1bf..d4afc2dc8 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.host-panic.0 tasks -slvr" +args = "-d hubris.core.host-panic.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.1.toml b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.1.toml index 3631dc80f..f63228f7e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.1.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.1.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.host-panic.1 tasks -slvr" +args = "-d hubris.core.host-panic.1 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.2.toml b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.2.toml index 715140b41..19787152f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.2.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.2.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.host-panic.2 tasks -slvr" +args = "-d hubris.core.host-panic.2 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.3.toml b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.3.toml index ca8041c49..efe6d7ab0 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.3.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.3.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.host-panic.3 tasks -slvr" +args = "-d hubris.core.host-panic.3 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.4.toml b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.4.toml index 9b0666cb1..33ba250ee 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.host-panic.4.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.host-panic.4.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.host-panic.4 tasks -slvr" +args = "-d hubris.core.host-panic.4 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.idol-returns-an-enum.toml b/tests/cmd/tasks-slvr/tasks-slvr.idol-returns-an-enum.toml index da14999e3..38f808500 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.idol-returns-an-enum.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.idol-returns-an-enum.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.idol-returns-an-enum tasks -slvr" +args = "-d hubris.core.idol-returns-an-enum tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.igor.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.igor.0.toml index 6f8244b7c..c98da8252 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.igor.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.igor.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.igor.0 tasks -slvr" +args = "-d hubris.core.igor.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.in_bootloader.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.in_bootloader.0.toml index ae3827aca..37f3363fa 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.in_bootloader.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.in_bootloader.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.in_bootloader.0 tasks -slvr" +args = "-d hubris.core.in_bootloader.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.inheritance.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.inheritance.0.toml index 05bdfbdcf..3bab7499e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.inheritance.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.inheritance.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.inheritance.0 tasks -slvr" +args = "-d hubris.core.inheritance.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ipc-counts.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.ipc-counts.0.toml index a25969ce5..b8a2b6a6c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ipc-counts.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ipc-counts.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ipc-counts.0 tasks -slvr" +args = "-d hubris.core.ipc-counts.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.0.toml index c963cc7da..9244fea30 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kernel-panic.0 tasks -slvr" +args = "-d hubris.core.kernel-panic.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.1.toml b/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.1.toml index 566f90fdb..b07b0abf5 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.1.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kernel-panic.1.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kernel-panic.1 tasks -slvr" +args = "-d hubris.core.kernel-panic.1 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.stdout b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.stdout index cf14084f4..8fca92aaa 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.stdout @@ -2,6 +2,8 @@ system time = 120445 ID TASK GEN PRI STATE 0 runner 0 0 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: Do not have unwind info for the given address. | +-----------> 0x200000a8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.toml index 048017cc7..67ed89cfe 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.0.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.0 tasks -slvr" +args = "-d hubris.core.kiowa.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.stdout b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.stdout index b56dbaaca..752d0108d 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.stdout @@ -194,6 +194,11 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: failed to read cfa 0x20002400, offset 0xfffffffffffffffc: [] + +Caused by: + address (0x200023fc) below range (HubrisRegion { daddr: Some(8004b1c), base: 20002400, size: 400, attr: HubrisRegionAttr { read: true, write: true, execute: false, device: false, dma: false, external: false }, tasks: [Task(5)] }) | +-----------> 0x20000328 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.toml index 2e6433c79..f47d91cdb 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.1.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.1 tasks -slvr" +args = "-d hubris.core.kiowa.1 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.10.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.10.toml index 4b2aff273..d9182d56a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.10.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.10.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.10 tasks -slvr" +args = "-d hubris.core.kiowa.10 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.11.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.11.toml index b59784b3b..e481048b1 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.11.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.11.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.11 tasks -slvr" +args = "-d hubris.core.kiowa.11 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.12.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.12.toml index 394267ff5..4c674907a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.12.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.12.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.12 tasks -slvr" +args = "-d hubris.core.kiowa.12 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.13.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.13.toml index 80b506892..0df811227 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.13.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.13.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.13 tasks -slvr" +args = "-d hubris.core.kiowa.13 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.14.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.14.toml index 46faa6902..e6f1633bc 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.14.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.14.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.14 tasks -slvr" +args = "-d hubris.core.kiowa.14 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.15.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.15.toml index 9d65bc43e..5a106cc64 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.15.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.15.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.15 tasks -slvr" +args = "-d hubris.core.kiowa.15 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.16.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.16.toml index d5ab309d3..21cffe3fe 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.16.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.16.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.16 tasks -slvr" +args = "-d hubris.core.kiowa.16 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.17.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.17.toml index 85ff2f6d3..a7e697286 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.17.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.17.toml @@ -6,7 +6,7 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.17 tasks -slvr" +args = "-d hubris.core.kiowa.17 tasks -slvr --guess" # # This dump is somehow short by exactly 6K -- which results in an error diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.18.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.18.toml index f755bde5c..062161179 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.18.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.18.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.18 tasks -slvr" +args = "-d hubris.core.kiowa.18 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.19.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.19.toml index 3ac484448..eefeff407 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.19.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.19.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.19 tasks -slvr" +args = "-d hubris.core.kiowa.19 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.stdout b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.stdout index 689514dc0..6f7a95a7b 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.stdout @@ -194,6 +194,11 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: failed to read cfa 0x20002400, offset 0xfffffffffffffffc: [] + +Caused by: + address (0x200023fc) below range (HubrisRegion { daddr: Some(8004b58), base: 20002400, size: 400, attr: HubrisRegionAttr { read: true, write: true, execute: false, device: false, dma: false, external: false }, tasks: [Task(5)] }) | +-----------> 0x20000308 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.toml index 39933809a..41dd7de23 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.2.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.2 tasks -slvr" +args = "-d hubris.core.kiowa.2 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.20.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.20.toml index 0f4dc62ea..43f04a06e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.20.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.20.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.20 tasks -slvr" +args = "-d hubris.core.kiowa.20 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.21.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.21.toml index a2f42aec9..bcc8e65a9 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.21.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.21.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.21 tasks -slvr" +args = "-d hubris.core.kiowa.21 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.22.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.22.toml index b13281d57..d0ee15349 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.22.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.22.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.22 tasks -slvr" +args = "-d hubris.core.kiowa.22 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.23.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.23.toml index db1ee83a4..92fd843d2 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.23.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.23.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.23 tasks -slvr" +args = "-d hubris.core.kiowa.23 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.24.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.24.toml index 96ed7ea2f..e1a0b7ffc 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.24.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.24.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.24 tasks -slvr" +args = "-d hubris.core.kiowa.24 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.25.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.25.toml index 459ef3a69..a1dd58960 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.25.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.25.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.25 tasks -slvr" +args = "-d hubris.core.kiowa.25 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.26.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.26.toml index 169259a97..e8a54cab5 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.26.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.26.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.26 tasks -slvr" +args = "-d hubris.core.kiowa.26 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.27.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.27.toml index dd5a4b4a2..ae66549fd 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.27.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.27.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.27 tasks -slvr" +args = "-d hubris.core.kiowa.27 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.28.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.28.toml index 59cfef919..39bf5e9bf 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.28.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.28.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.28 tasks -slvr" +args = "-d hubris.core.kiowa.28 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.29.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.29.toml index a05c65f4b..83c9a41f3 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.29.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.29.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.29 tasks -slvr" +args = "-d hubris.core.kiowa.29 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.3.fails.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.3.fails.toml index ca6f9be75..bc5f9ed11 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.3.fails.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.3.fails.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.3.fails tasks -slvr" +args = "-d hubris.core.kiowa.3.fails tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.30.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.30.toml index 738488cf2..41286435c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.30.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.30.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.30 tasks -slvr" +args = "-d hubris.core.kiowa.30 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.31.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.31.toml index 2b3739819..3ca2a5fbd 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.31.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.31.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.31 tasks -slvr" +args = "-d hubris.core.kiowa.31 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.4.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.4.toml index bcfa2c4cf..742d46c32 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.4.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.4.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.4 tasks -slvr" +args = "-d hubris.core.kiowa.4 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.49.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.49.toml index 3962a0da0..fe046542f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.49.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.49.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.49 tasks -slvr" +args = "-d hubris.core.kiowa.49 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.stdout b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.stdout index d1b999ed8..dfef300f7 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.stdout @@ -480,6 +480,8 @@ ID TASK GEN PRI STATE 10 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x200005e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.toml index 9efd43a61..dc4d43d5d 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.5.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.5 tasks -slvr" +args = "-d hubris.core.kiowa.5 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.50.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.50.toml index b3725fc21..5d3cb67e7 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.50.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.50.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.50 tasks -slvr" +args = "-d hubris.core.kiowa.50 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.51.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.51.toml index cf09fb632..a829bf2ab 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.51.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.51.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.51 tasks -slvr" +args = "-d hubris.core.kiowa.51 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.52.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.52.toml index 96d7d1353..f1e31c325 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.52.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.52.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.52 tasks -slvr" +args = "-d hubris.core.kiowa.52 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.53.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.53.toml index 5c257630d..84b6e3a3e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.53.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.53.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.53 tasks -slvr" +args = "-d hubris.core.kiowa.53 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.6.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.6.toml index 05381a802..a2ba79b50 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.6.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.6.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.6 tasks -slvr" +args = "-d hubris.core.kiowa.6 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.7.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.7.toml index c3baf0a3f..30a56f4bc 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.7.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.7.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.7 tasks -slvr" +args = "-d hubris.core.kiowa.7 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.8.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.8.toml index 13b71a989..5a5690e79 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.8.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.8.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.8 tasks -slvr" +args = "-d hubris.core.kiowa.8 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.9.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.9.toml index ecab578bd..ca7c9edb9 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.9.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.9.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.9 tasks -slvr" +args = "-d hubris.core.kiowa.9 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.idol.qpsi.1.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.idol.qpsi.1.toml index 883c5b302..a9403423c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.idol.qpsi.1.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.idol.qpsi.1.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.idol.qpsi.1 tasks -slvr" +args = "-d hubris.core.kiowa.idol.qpsi.1 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.rick.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.rick.0.toml index 20a37b108..080dc0d79 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.rick.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.rick.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.rick.0 tasks -slvr" +args = "-d hubris.core.kiowa.rick.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.stm32h743-nucleo.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.stm32h743-nucleo.0.toml index 3e6145827..fab37dc3b 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.kiowa.stm32h743-nucleo.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.kiowa.stm32h743-nucleo.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.kiowa.stm32h743-nucleo.0 tasks -slvr" +args = "-d hubris.core.kiowa.stm32h743-nucleo.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.new-ringbuf.toml b/tests/cmd/tasks-slvr/tasks-slvr.new-ringbuf.toml index 75255cdf3..c604cffb8 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.new-ringbuf.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.new-ringbuf.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.new-ringbuf tasks -slvr" +args = "-d hubris.core.new-ringbuf tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.new-sensors.toml b/tests/cmd/tasks-slvr/tasks-slvr.new-sensors.toml index 2175c1395..be7ca3f6f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.new-sensors.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.new-sensors.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.new-sensors tasks -slvr" +args = "-d hubris.core.new-sensors tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.nightly-2022-11-01.toml b/tests/cmd/tasks-slvr/tasks-slvr.nightly-2022-11-01.toml index 38723511e..0cb1df682 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.nightly-2022-11-01.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.nightly-2022-11-01.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.nightly-2022-11-01 tasks -slvr" +args = "-d hubris.core.nightly-2022-11-01 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.stdout index 8cbf0ab8a..71865c190 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.stdout @@ -430,6 +430,8 @@ ID TASK GEN PRI STATE 9 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x20000558 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.toml index 33715ee0c..ed78f7d2e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.0.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.0 tasks -slvr" +args = "-d hubris.core.ouray.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.stdout index fc26c9ff0..0990ad983 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.stdout @@ -244,6 +244,8 @@ ID TASK GEN PRI STATE 5 i2c_target 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x200003b8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.toml index 07788f291..7e8ff7d68 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.1.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.1 tasks -slvr" +args = "-d hubris.core.ouray.1 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.stdout index 6e040761b..ca810e1c8 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.stdout @@ -96,6 +96,8 @@ ID TASK GEN PRI STATE 2 usart_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: Do not have unwind info for the given address. | +-----------> 0x200001e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.toml index c642ebf93..e4d3d489e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.10.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.10 tasks -slvr" +args = "-d hubris.core.ouray.10 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.stdout index 66d237873..94be8672a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.stdout @@ -194,6 +194,11 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x20002400 0x08014130 main + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:248 + | | +-----------> 0x20000388 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.toml index 8f9863b72..fcee2bf94 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.11.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.11 tasks -slvr" +args = "-d hubris.core.ouray.11 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.stdout index 5bd59a1fe..a3f7a6f86 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.stdout @@ -324,6 +324,19 @@ ID TASK GEN PRI STATE 5 spd 61 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x20002ba0 0x080190d8 rust_begin_unwind + | @ /home/bmc/hubris/userlib/src/lib.rs:874 + | 0x20002bb8 0x080182b2 core::panicking::panic_fmt + | @ /rustc/2987785df3d46d5ff144a5c67fbb8f5cca798d78//library/core/src/panicking.rs:77 + | 0x20002bf0 0x08018190 core::panicking::panic_bounds_check + | @ /rustc/2987785df3d46d5ff144a5c67fbb8f5cca798d78//library/core/src/panicking.rs:64 + | 0x20002bf8 0x08018110 task_spd::Ringbuf::entry + | @ /home/bmc/hubris/task-spd/src/main.rs:114 + | 0x20002c00 0x080180fa main + | @ /home/bmc/hubris/task-spd/src/main.rs:117 + | | +-----------> 0x200004f8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.toml index 3b8a0dd8f..018a00b30 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.12.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.12 tasks -slvr" +args = "-d hubris.core.ouray.12 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.stdout index 811e89ba7..80f50c5ba 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.stdout @@ -258,6 +258,29 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200022e8 0x08015ee0 drv_stm32h7_i2c::max7358::write_reg + | @ /home/bmc/hubris/drv/stm32h7-i2c/src/max7358.rs:90 + | 0x20002310 0x08016212 ::enable_segment + | @ /home/bmc/hubris/drv/stm32h7-i2c/src/max7358.rs:164 + | 0x20002400 0x080147aa drv_stm32h7_i2c_server::configure_mux::{{closure}} + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:110 + | 0x20002400 0x080147aa drv_stm32h7_i2c_server::find_mux + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:75 + | 0x20002400 0x080147aa drv_stm32h7_i2c_server::configure_mux + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:102 + | 0x20002400 0x0801451c drv_stm32h7_i2c_server::main::{{closure}} + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:315 + | 0x20002400 0x0801451c userlib::hl::recv_without_notification::{{closure}} + | @ /home/bmc/hubris/userlib/src/hl.rs:123 + | 0x20002400 0x080144c2 userlib::hl::recv + | @ /home/bmc/hubris/userlib/src/hl.rs:78 + | 0x20002400 0x080144c2 userlib::hl::recv_without_notification + | @ /home/bmc/hubris/userlib/src/hl.rs:116 + | 0x20002400 0x080147c4 main + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:172 + | | +-----------> 0x20000488 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.toml index baebe2659..59c7f7c93 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.13.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.13 tasks -slvr" +args = "-d hubris.core.ouray.13 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.stdout index 7e51da620..067b3d6c2 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.stdout @@ -764,6 +764,15 @@ ID TASK GEN PRI STATE 12 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x2000a100 0x08040054 cortex_m::asm::inline::__wfi + | @ /home/bmc/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.1/src/../asm/inline.rs:180 + | 0x2000a100 0x08040054 cortex_m::asm::wfi + | @ /home/bmc/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.1/src/asm.rs:54 + | 0x2000a100 0x08040054 main + | @ /home/bmc/hubris/task-idle/src/main.rs:9 + | | +-----------> 0x20000a08 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.toml index cb4fa9898..250a26561 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.14.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.14 tasks -slvr" +args = "-d hubris.core.ouray.14 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.stdout index 83a33ac95..b4a9d64ba 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.stdout @@ -386,6 +386,8 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x200005e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.toml index 55d677106..c8af0b0af 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.15.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.15 tasks -slvr" +args = "-d hubris.core.ouray.15 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.stdout index cec963f9a..d8149ef64 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.stdout @@ -770,6 +770,15 @@ ID TASK GEN PRI STATE 12 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x2000a100 0x08040054 cortex_m::asm::inline::__wfi + | @ /home/bmc/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.1/src/../asm/inline.rs:180 + | 0x2000a100 0x08040054 cortex_m::asm::wfi + | @ /home/bmc/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.1/src/asm.rs:54 + | 0x2000a100 0x08040054 main + | @ /home/bmc/hubris/task-idle/src/main.rs:9 + | | +-----------> 0x20000a08 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.toml index 60e7b768f..8ab16e91f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.16.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.16 tasks -slvr" +args = "-d hubris.core.ouray.16 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.stdout index e14caf005..516103950 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.stdout @@ -386,6 +386,8 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x200005e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.toml index 26617e0d7..f16fe86a1 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.17.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.17 tasks -slvr" +args = "-d hubris.core.ouray.17 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.stdout index 3384f82af..5b0661f92 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.stdout @@ -388,6 +388,10 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200033e8 0x00000000 + | | +-----------> 0x200005e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.toml index cc3c2f3f5..7010a5015 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.18.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.18 tasks -slvr" +args = "-d hubris.core.ouray.18 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.stdout index 7e4fec3b8..8f52c14a6 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.stdout @@ -258,6 +258,8 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x20000488 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.toml index dd692d4c5..8cebe6a36 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.19.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.19 tasks -slvr" +args = "-d hubris.core.ouray.19 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.stdout index 3f8fa0f2f..80a64f1f9 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.stdout @@ -236,6 +236,11 @@ ID TASK GEN PRI STATE 5 log 0 3 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: failed to read cfa 0x20004000, offset 0xfffffffffffffffc: [] + +Caused by: + address (0x20003ffc) below range (HubrisRegion { daddr: Some(80047d0), base: 20004000, size: 1000, attr: HubrisRegionAttr { read: true, write: true, execute: true, device: false, dma: false, external: false }, tasks: [Task(6)] }) | +-----------> 0x20000358 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.toml index cced2728d..3c3fc2fd3 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.2.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.2 tasks -slvr" +args = "-d hubris.core.ouray.2 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.stdout index 13ba27a38..7f9f0fefa 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.stdout @@ -392,6 +392,8 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x200005e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.toml index 63ae46a88..f3972e828 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.20.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.20 tasks -slvr" +args = "-d hubris.core.ouray.20 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.stdout index 656b4c49d..7c59c192a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.stdout @@ -386,6 +386,11 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200033e8 0x0801c094 main + | @ /home/bmc/hubris/drv/stm32h7-spi-server/src/main.rs:74 + | | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.toml index 8f69028c2..63c69f754 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.21.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.21 tasks -slvr" +args = "-d hubris.core.ouray.21 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.stdout index 2fb8959e9..bba8a10be 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.stdout @@ -386,6 +386,8 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x80010003 | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.toml index 14d607c53..e90dbb53f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.22.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.22 tasks -slvr" +args = "-d hubris.core.ouray.22 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.stdout index 59b1aab5e..cc51ba8dc 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.stdout @@ -386,6 +386,10 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200033e8 0x00000000 + | | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.toml index b03d4f362..2fe143884 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.23.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.23 tasks -slvr" +args = "-d hubris.core.ouray.23 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.stdout index d1bbc79c1..bf956dedf 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.stdout @@ -386,6 +386,8 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x80010003 | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.toml index aa29fb808..0f7e195ad 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.24.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.24 tasks -slvr" +args = "-d hubris.core.ouray.24 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.stdout index bf1a114f8..9fcbe2488 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.stdout @@ -386,6 +386,11 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200033e8 0x0801c094 main + | @ /home/bmc/hubris/drv/stm32h7-spi-server/src/main.rs:74 + | | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.toml index 71aa8a737..44845e991 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.25.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.25 tasks -slvr" +args = "-d hubris.core.ouray.25 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.stdout index ad1caf086..ccbe80023 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.stdout @@ -386,6 +386,10 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200033e8 0x00000000 + | | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.toml index 036049761..3ee065a0a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.26.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.26 tasks -slvr" +args = "-d hubris.core.ouray.26 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.stdout index 17b083077..ac0a16283 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.stdout @@ -834,6 +834,15 @@ ID TASK GEN PRI STATE 13 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x2000a900 0x08044054 cortex_m::asm::inline::__wfi + | @ /home/bmc/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.2/src/../asm/inline.rs:181 + | 0x2000a900 0x08044054 cortex_m::asm::wfi + | @ /home/bmc/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.2/src/asm.rs:54 + | 0x2000a900 0x08044054 main + | @ /home/bmc/hubris/task-idle/src/main.rs:9 + | | +-----------> 0x20000ae0 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.toml index 8574bff12..185f79625 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.27.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.27 tasks -slvr" +args = "-d hubris.core.ouray.27 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.28.fails.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.28.fails.toml index 5f597c3a8..1bf5419d3 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.28.fails.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.28.fails.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.28.fails tasks -slvr" +args = "-d hubris.core.ouray.28.fails tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.stdout index 56b92fb85..6c1da21e9 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.stdout @@ -386,6 +386,10 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x200033e8 0x00000000 + | | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.toml index 3716429bc..04911432d 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.29.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.29 tasks -slvr" +args = "-d hubris.core.ouray.29 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.stdout index e2a1e4868..af0dc5f88 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.stdout @@ -192,6 +192,10 @@ ID TASK GEN PRI STATE 4 ping 1 4 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x20002200 0x00000000 + | | +-----------> 0x200002c8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.toml index addddb16c..eae67c5bd 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.3.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.3 tasks -slvr" +args = "-d hubris.core.ouray.3 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.stdout index 55203002d..cc4a5e525 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.stdout @@ -386,6 +386,8 @@ ID TASK GEN PRI STATE 6 spi_driver 0 2 notif: bit0(irq84) could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x80010003 | +-----------> 0x20000610 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.toml index 78f237f8c..1fc1e670c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.30.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.30 tasks -slvr" +args = "-d hubris.core.ouray.30 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.31.fails.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.31.fails.toml index 3ac98b4fc..9c1c6465a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.31.fails.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.31.fails.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.31.fails tasks -slvr" +args = "-d hubris.core.ouray.31.fails tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.32.fails.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.32.fails.toml index 4387a0bfb..502ce30d7 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.32.fails.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.32.fails.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.32.fails tasks -slvr" +args = "-d hubris.core.ouray.32.fails tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.stdout index f2ee87eb4..586119243 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.stdout @@ -2,6 +2,10 @@ system time = 289452420 ID TASK GEN PRI STATE 0 jefe 0 0 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x20001400 0x00000000 + | | +-----------> 0x200001a8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.toml index c382c7bea..ef6648d45 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.33.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.33 tasks -slvr" +args = "-d hubris.core.ouray.33 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.34.fails.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.34.fails.toml index f1808a6d7..5105bbf8b 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.34.fails.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.34.fails.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.34.fails tasks -slvr" +args = "-d hubris.core.ouray.34.fails tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.35.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.35.toml index fe7eb7c03..45e7f05c9 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.35.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.35.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.35 tasks -slvr" +args = "-d hubris.core.ouray.35 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.36.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.36.toml index ef3decd1d..bb0c239b1 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.36.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.36.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.36 tasks -slvr" +args = "-d hubris.core.ouray.36 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.37.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.37.toml index 0a4f90548..d360fb8ec 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.37.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.37.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.37 tasks -slvr" +args = "-d hubris.core.ouray.37 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.38.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.38.toml index 3d9087534..51d733ecf 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.38.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.38.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.38 tasks -slvr" +args = "-d hubris.core.ouray.38 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.39.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.39.toml index 7b502a9f2..289536cce 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.39.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.39.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.39 tasks -slvr" +args = "-d hubris.core.ouray.39 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.stdout index 76f077d0b..8aa6bd907 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.stdout @@ -96,6 +96,11 @@ ID TASK GEN PRI STATE 2 usart_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: failed to read cfa 0x20001be0, offset 0xfffffffffffffffc: [] + +Caused by: + address (0x20001bdc) below range (HubrisRegion { daddr: Some(800476c), base: 20001c00, size: 400, attr: HubrisRegionAttr { read: true, write: true, execute: true, device: false, dma: false, external: false }, tasks: [Task(3)] }) | +-----------> 0x200001e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.toml index b404eeb22..91a42e43f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.4.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.4 tasks -slvr" +args = "-d hubris.core.ouray.4 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.40.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.40.toml index e93c65f2a..31e5b7bb3 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.40.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.40.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.40 tasks -slvr" +args = "-d hubris.core.ouray.40 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.41.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.41.toml index 5826a02c7..6c71ea002 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.41.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.41.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.41 tasks -slvr" +args = "-d hubris.core.ouray.41 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.42.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.42.toml index 652f0bde0..b7e34c3f2 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.42.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.42.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.42 tasks -slvr" +args = "-d hubris.core.ouray.42 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.43.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.43.toml index 1a236ce51..b2f8aab5c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.43.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.43.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.43 tasks -slvr" +args = "-d hubris.core.ouray.43 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.stdout index c3fe45c2e..e6f20f8f8 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.stdout @@ -258,6 +258,39 @@ ID TASK GEN PRI STATE 4 i2c_driver 52 2 FAULT: stack overflow; sp=0x200027a8 (was: ready) could not read registers: read of 32 bytes from invalid address: 0x200027a8 + guessing at stack trace using saved frame pointer + | + +---> 0x20002838 0x080160ac ::write_str + | @ /home/bmc/hubris/userlib/src/lib.rs:882 + | 0x20002840 0x08016160 <&mut W as core::fmt::Write>::write_str + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82/library/core/src/fmt/mod.rs:190 + | 0x20002898 0x080154ca core::fmt::write + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/fmt/mod.rs:1077 + | 0x200028d0 0x0801559c <&T as core::fmt::Display>::fmt + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/fmt/mod.rs:2012 + | 0x20002928 0x08015484 core::fmt::write + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/fmt/mod.rs:1077 + | 0x20002978 0x08015fbc ::fmt + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/panic.rs:168 + | 0x20002978 0x08016012 <&T as core::fmt::Display>::fmt + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82/library/core/src/fmt/mod.rs:2012 + | 0x200029d0 0x08015484 core::fmt::write + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/fmt/mod.rs:1077 + | 0x20002a08 0x08016148 core::fmt::Write::write_fmt + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82/library/core/src/fmt/mod.rs:183 + | 0x20002ab8 0x08016386 rust_begin_unwind + | @ /home/bmc/hubris/userlib/src/lib.rs:874 + | 0x20002ad0 0x08014d7e core::panicking::panic_fmt + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/panicking.rs:77 + | 0x20002af8 0x08014c1a core::panicking::panic + | @ /rustc/7f4afdf0255600306bf67432da722c7b5d2cbf82//library/core/src/panicking.rs:39 + | 0x20002b28 0x08014b38 drv_stm32h7_i2c_server::configure_port + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:500 + | 0x20002c00 0x08014406 drv_stm32h7_i2c_server::configure_muxes + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:598 + | 0x20002c00 0x08014438 main + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:188 + | | +-----------> 0x20000490 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.toml index ef35992dd..2a65f8636 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.44.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.44 tasks -slvr" +args = "-d hubris.core.ouray.44 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.45.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.45.toml index f80d68581..c49d3d2d7 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.45.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.45.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.45 tasks -slvr" +args = "-d hubris.core.ouray.45 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.46.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.46.toml index fe73a2b9e..fb24ffbbe 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.46.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.46.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.46 tasks -slvr" +args = "-d hubris.core.ouray.46 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.47.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.47.toml index e6a5c0cc0..d3720d8d0 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.47.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.47.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.47 tasks -slvr" +args = "-d hubris.core.ouray.47 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.48.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.48.toml index 7a2c8199b..46909000e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.48.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.48.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.48 tasks -slvr" +args = "-d hubris.core.ouray.48 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.49.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.49.toml index 9ad4788cc..c47d2144f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.49.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.49.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.49 tasks -slvr" +args = "-d hubris.core.ouray.49 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.stdout index d1b999ed8..dfef300f7 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.stdout @@ -480,6 +480,8 @@ ID TASK GEN PRI STATE 10 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x200005e8 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.toml index e1299eecb..9038d5337 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.5.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.5 tasks -slvr" +args = "-d hubris.core.ouray.5 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.50.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.50.toml index e3143edb8..640d2f80f 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.50.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.50.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.50 tasks -slvr" +args = "-d hubris.core.ouray.50 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.51.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.51.toml index c35f04bf7..7379554c6 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.51.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.51.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.51 tasks -slvr" +args = "-d hubris.core.ouray.51 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.52.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.52.toml index a5a5e57cc..0ae762d95 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.52.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.52.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.52 tasks -slvr" +args = "-d hubris.core.ouray.52 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.53.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.53.toml index d73dac31a..89f95906a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.53.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.53.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.53 tasks -slvr" +args = "-d hubris.core.ouray.53 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.54.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.54.toml index 053b74b29..6814f8306 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.54.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.54.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.54 tasks -slvr" +args = "-d hubris.core.ouray.54 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.55.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.55.toml index cd4cc4e66..3dc81175c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.55.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.55.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.55 tasks -slvr" +args = "-d hubris.core.ouray.55 tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.stdout index c4523c30f..6cf42fd9d 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.stdout @@ -194,6 +194,11 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + | + +---> 0x20002400 0x08014130 main + | @ /home/bmc/hubris/drv/stm32h7-i2c-server/src/main.rs:248 + | | +-----------> 0x20000348 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.toml index 6bf031217..d80af353e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.6.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.6 tasks -slvr" +args = "-d hubris.core.ouray.6 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.61.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.61.toml index e5b3f6c26..f33697aec 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.61.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.61.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.61 tasks -slvr" +args = "-d hubris.core.ouray.61 tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.62.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.62.toml index 6ac299e1c..8c1ed56c2 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.62.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.62.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.62 tasks -slvr" +args = "-d hubris.core.ouray.62 tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.63.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.63.toml index 288fb258a..a9c35c447 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.63.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.63.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.63 tasks -slvr" +args = "-d hubris.core.ouray.63 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.64.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.64.toml index 4de0b8979..c588672fd 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.64.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.64.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.64 tasks -slvr" +args = "-d hubris.core.ouray.64 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.65.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.65.toml index 336653b8c..5a2f99466 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.65.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.65.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.65 tasks -slvr" +args = "-d hubris.core.ouray.65 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.66.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.66.toml index 3eda33a6b..7f7154573 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.66.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.66.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.66 tasks -slvr" +args = "-d hubris.core.ouray.66 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.67.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.67.toml index 35724a75b..2bda154f9 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.67.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.67.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.67 tasks -slvr" +args = "-d hubris.core.ouray.67 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.68.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.68.toml index dccb7d008..8cffd6756 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.68.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.68.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.68 tasks -slvr" +args = "-d hubris.core.ouray.68 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.69.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.69.toml index 5a42e5a8b..6a72789d5 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.69.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.69.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.69 tasks -slvr" +args = "-d hubris.core.ouray.69 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.stdout index d766f53e5..5121cebdd 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.stdout @@ -194,6 +194,11 @@ ID TASK GEN PRI STATE 4 i2c_driver 0 2 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: failed to read cfa 0x20002400, offset 0xfffffffffffffffc: [] + +Caused by: + address (0x200023fc) below range (HubrisRegion { daddr: Some(8004b24), base: 20002400, size: 400, attr: HubrisRegionAttr { read: true, write: true, execute: false, device: false, dma: false, external: false }, tasks: [Task(5)] }) | +-----------> 0x20000328 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.toml index 2e70d5e89..b5c2fa68c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.7.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.7 tasks -slvr" +args = "-d hubris.core.ouray.7 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.70.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.70.toml index ac304380e..74913d6be 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.70.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.70.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.70 tasks -slvr" +args = "-d hubris.core.ouray.70 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.71.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.71.toml index 068ff1ce2..0d573f100 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.71.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.71.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.71 tasks -slvr" +args = "-d hubris.core.ouray.71 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.stdout index ba780ac27..a314ac57e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.stdout @@ -528,6 +528,8 @@ ID TASK GEN PRI STATE 11 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x20000678 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.toml index 4a5beddd3..47fc748da 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.8.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.8 tasks -slvr" +args = "-d hubris.core.ouray.8 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.stdout b/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.stdout index 4dec4f787..b25ae1369 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.stdout @@ -528,6 +528,8 @@ ID TASK GEN PRI STATE 11 idle 0 5 RUNNING could not read registers: register PC not found in dump + guessing at stack trace using saved frame pointer + stack unwind failed: read of 4 bytes from invalid address: 0x4 | +-----------> 0x20000678 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.toml b/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.toml index fdf92f924..aedf662ca 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.ouray.9.toml @@ -6,4 +6,4 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.ouray.9 tasks -slvr" +args = "-d hubris.core.ouray.9 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.panic-on-boot.toml b/tests/cmd/tasks-slvr/tasks-slvr.panic-on-boot.toml index ce3fa7714..35f21766a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.panic-on-boot.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.panic-on-boot.toml @@ -6,6 +6,6 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.panic-on-boot tasks -slvr" +args = "-d hubris.core.panic-on-boot tasks -slvr --guess" status.code = 1 diff --git a/tests/cmd/tasks-slvr/tasks-slvr.spoopy.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.spoopy.0.toml index 484f45b5b..7ec92e19b 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.spoopy.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.spoopy.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.spoopy.0 tasks -slvr" +args = "-d hubris.core.spoopy.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.sprot_status.toml b/tests/cmd/tasks-slvr/tasks-slvr.sprot_status.toml index b70b7149e..d84497630 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.sprot_status.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.sprot_status.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.sprot_status tasks -slvr" +args = "-d hubris.core.sprot_status tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.0.toml b/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.0.toml index d617b4e26..4dbe772b3 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.0.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.0.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.static-tasks.0 tasks -slvr" +args = "-d hubris.core.static-tasks.0 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.1.toml b/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.1.toml index 996512954..25110fa23 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.1.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.static-tasks.1.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.static-tasks.1 tasks -slvr" +args = "-d hubris.core.static-tasks.1 tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.task.net.toml b/tests/cmd/tasks-slvr/tasks-slvr.task.net.toml index 6ed856be7..1b56ff721 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.task.net.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.task.net.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.task.net tasks -slvr" +args = "-d hubris.core.task.net tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.task.power.stdout b/tests/cmd/tasks-slvr/tasks-slvr.task.power.stdout index ec887fffb..7feb89a6e 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.task.power.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.task.power.stdout @@ -2,6 +2,41 @@ system time = 76648 ID TASK GEN PRI STATE 8 power 0 6 FAULT: stack overflow; sp=0x24043fa0 (was: ready) could not read registers: read of 32 bytes from invalid address: 0x24043fa0 + guessing at stack trace using saved frame pointer + | + +---> 0x24044040 0x08088a20 core::fmt::write + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/fmt/mod.rs:1195 + | 0x24044090 0x08088a20 core::fmt::write + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/fmt/mod.rs:1195 + | 0x240440e0 0x0808a8e8 ::fmt + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/panic/panic_info.rs:152 + | 0x240440e0 0x0808a93c <&T as core::fmt::Display>::fmt + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/fmt/mod.rs:2373 + | 0x24044130 0x08088a20 core::fmt::write + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/fmt/mod.rs:1195 + | 0x24044168 0x0808a9c8 core::fmt::Write::write_fmt + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/fmt/mod.rs:191 + | 0x240441a0 0x0808abbc rust_begin_unwind + | @ /hubris/sys/userlib/src/lib.rs:1298 + | 0x240441c0 0x08087fca core::panicking::panic_fmt + | @ /rustc/95a3a7277b44bbd2dd3485703d9a05f64652b60e/library/core/src/panicking.rs:50 + | 0x240441e8 0x080895dc drv_i2c_api::I2cDevice::response_code + | @ /hubris/drv/i2c-api/src/lib.rs:128 + | 0x24044240 0x080897b6 drv_i2c_api::I2cDevice::read_reg + | @ /hubris/drv/i2c-api/src/lib.rs:158 + | 0x240449c8 0x08084a86 >::read_temperature + | @ /hubris/drv/i2c-devices/src/bmr491.rs:95 + | 0x240449c8 0x08084a86 task_power::Device::read_temperature + | @ /hubris/task/power/src/main.rs:101 + | 0x240449c8 0x08084958 task_power::ServerImpl::handle_timer_fired + | @ /hubris/task/power/src/main.rs:439 + | 0x240449c8 0x08084958 ::handle_notification + | @ /hubris/task/power/src/main.rs:627 + | 0x240449c8 0x08084906 idol_runtime::dispatch + | @ /git/idolatry-1ebf1c2fd2f30300/f86afe0/runtime/src/lib.rs:228 + | 0x240449c8 0x08084a90 main + | @ /hubris/task/power/src/main.rs:411 + | | +-----------> 0x240009d0 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.task.power.toml b/tests/cmd/tasks-slvr/tasks-slvr.task.power.toml index 3504ae5fc..808e35687 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.task.power.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.task.power.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.task.power tasks -slvr" +args = "-d hubris.core.task.power tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.stdout b/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.stdout index eb6e40149..1ae3898dc 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.stdout +++ b/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.stdout @@ -2,6 +2,14 @@ system time = 23233 ID TASK GEN PRI STATE 10 gimlet_seq 12 4 FAULT: stack overflow; sp=0x24047fc0 (was: ready) could not read registers: read of 32 bytes from invalid address: 0x24047fc0 + guessing at stack trace using saved frame pointer + | + +---> 0x240480c0 0x0807afd4 drv_gimlet_seq_server::ringbuf_entry_v3p3_sys_a0_vout + | @ /hubris/drv/gimlet-seq-server/src/main.rs:1398 + | 0x240482b0 0x0807a4c0 drv_gimlet_seq_server::ServerImpl::set_state_internal + | 0x24048640 0x08079c2a main + | @ /hubris/drv/gimlet-seq-server/src/main.rs:145 + | | +-----------> 0x24000b20 Task { save: SavedState { diff --git a/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.toml b/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.toml index 5ae4d3705..ec118aa1c 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.u16-ringbuf.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.u16-ringbuf tasks -slvr" +args = "-d hubris.core.u16-ringbuf tasks -slvr --guess" diff --git a/tests/cmd/tasks-slvr/tasks-slvr.v6.toml b/tests/cmd/tasks-slvr/tasks-slvr.v6.toml index 865663610..be438550a 100644 --- a/tests/cmd/tasks-slvr/tasks-slvr.v6.toml +++ b/tests/cmd/tasks-slvr/tasks-slvr.v6.toml @@ -6,5 +6,5 @@ # fs.base = "../cores" bin.name = "humility" -args = "-d hubris.core.v6 tasks -slvr" +args = "-d hubris.core.v6 tasks -slvr --guess"