Skip to content

Commit 4498ba2

Browse files
authored
add "humility dump" support for in situ dumping (#313)
This work adds the necessary "humility dump" support for in situ dumping, whereby dump contents are deposited into auxiliary memory within Hubris itself. This also includes the necessary support to both simulate dumping (where the dump agent is skipped entirely) and to emulate dumping (where Humility acts as the dumper, depositing Hubris contents into the agent-directed memory locations).
1 parent 03dbfc8 commit 4498ba2

File tree

11 files changed

+1001
-23
lines changed

11 files changed

+1001
-23
lines changed

Cargo.lock

Lines changed: 29 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ name = "humility"
1717
#
1818
# Be sure to check in and push all of the files that change. Happy versioning!
1919
#
20-
version = "0.9.22"
20+
version = "0.9.23"
2121
authors = ["Bryan Cantrill <[email protected]>"]
2222
edition = "2018"
2323
license = "MPL-2.0"
@@ -85,6 +85,7 @@ members = [
8585
[workspace.dependencies]
8686
# `git`-based deps
8787
hif = { git = "https://github.com/oxidecomputer/hif" }
88+
humpty = { git = "https://github.com/oxidecomputer/humpty" }
8889
idol = {git = "https://github.com/oxidecomputer/idolatry.git"}
8990
idt8a3xxxx = { git = "https://github.com/oxidecomputer/idt8a3xxxx" }
9091
lpc55_areas = { git = "https://github.com/oxidecomputer/lpc55_support", rev = "a07e8d39caf27dd83c314e121755d481a3f52263" }
@@ -193,6 +194,7 @@ jep106 = "0.2"
193194
lazy_static = "1.4.0"
194195
libc = "0.2"
195196
log = {version = "0.4.8", features = ["std"]}
197+
lzss = "0.8"
196198
multimap = "0.8.1"
197199
num-derive = "0.3"
198200
num-traits = "0.2"

cmd/diagnose/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,8 @@ fn diagnose(context: &mut humility::ExecutionContext) -> Result<()> {
347347

348348
if !subargs.no_dump {
349349
section("Generating Coredump");
350-
let rval = hubris.dump(core, None);
350+
let regions = hubris.regions(core)?;
351+
let rval = hubris.dump(core, &regions, None, None);
351352
if let Err(e) = rval {
352353
println!("Coredump failed: {}", e);
353354
}

cmd/dump/Cargo.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ description = "generate Hubris dump"
77
[dependencies]
88
humility = { workspace = true }
99
humility-cmd = { workspace = true }
10+
humpty = { workspace = true }
11+
indicatif = { workspace = true }
1012
clap = { workspace = true }
1113
anyhow = { workspace = true }
1214
log = { workspace = true }
15+
zip = { workspace = true }
16+
goblin = { workspace = true }
17+
hif = { workspace = true }
18+
lzss = { workspace = true }
19+
parse_int = { workspace = true }
20+
zerocopy = { workspace = true }
21+
num-traits = { workspace = true }

0 commit comments

Comments
 (0)