Skip to content

Commit ef5b4c7

Browse files
committed
ffi ptracing
fix review comments ?? docs move init to arg parsing docs again
1 parent b86371e commit ef5b4c7

File tree

17 files changed

+1492
-43
lines changed

17 files changed

+1492
-43
lines changed

Cargo.lock

Lines changed: 192 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ libc = "0.2"
4040
libffi = "4.0.0"
4141
libloading = "0.8"
4242

43+
[target.'cfg(target_os = "linux")'.dependencies]
44+
nix = { version = "0.30.1", features = ["mman", "ptrace", "signal"] }
45+
ipc-channel = "0.19.0"
46+
serde = { version = "1.0.219", features = ["derive"] }
47+
capstone = "0.13"
48+
4349
[dev-dependencies]
4450
ui_test = "0.29.1"
4551
colored = "2"

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,11 @@ to Miri failing to detect cases of undefined behavior in a program.
419419
Finally, the flag is **unsound** in the sense that Miri stops tracking details such as
420420
initialization and provenance on memory shared with native code, so it is easily possible to write
421421
code that has UB which is missed by Miri.
422+
* `-Zmiri-force-old-native-lib-mode` disables the WIP improved native code access tracking. If for
423+
whatever reason enabling native calls leads to odd behaviours or causes Miri to panic, disabling
424+
the tracer *might* fix this. This will likely be removed once the tracer has been adequately
425+
battle-tested. Note that this flag is only meaningful on Linux systems; other Unixes (currently)
426+
exclusively use the old native-lib code.
422427
* `-Zmiri-measureme=<name>` enables `measureme` profiling for the interpreted program.
423428
This can be used to find which parts of your program are executing slowly under Miri.
424429
The profile is written out to a file inside a directory called `<name>`, and can be processed

0 commit comments

Comments
 (0)