Commit Graph

243 Commits

Author SHA1 Message Date
Kitsu
c6bcb4d3c0 Specify miri toolchain for CI example 2021-06-09 10:48:43 +03:00
hyd-dev
ddc2ee9db6
Move -Zmiri-disable-abi-check in README 2021-05-31 11:15:31 +08:00
hyd-dev
71f4140550
Add -Zmiri-disable-abi-check 2021-05-31 11:14:23 +08:00
Aaron Hill
16f469280e
Address review comments 2021-05-29 17:10:54 -05:00
Aaron Hill
7e9da8d30e
Add measureme integration for profiling the interpreted program
This PR uses the `measureme` crate to profile the call stack of the
program being interpreted by Miri. This is accomplished by starting a
measureme 'event' when we enter a function call, and ending the event
when we exit the call. The `measureme` tooling can be used to produce a
call stack from the generated profile data.

Limitations:
* We currently record every single entry/exit. This might generate very
  large profile outputs for programs with a large number of function
  calls. In follow-up work, we might want to explore sampling (e.g. only
  recording every N function calls).
* This does not integrate very well with Miri's concurrency support.
  Each event we record starts when we push a frame, and ends when we pop
  a frame. As a result, switching between virtual threads will cause
  events from different threads to be interleaved. Additionally, the
  recorded for a particular frame will include all of the work Miri does
  before that frame completes, including executing another thread.

The `measureme` integration is off by default, and must be enabled via
`-Zmiri-measureme=<output_name>`
2021-05-29 17:01:52 -05:00
scottmcm
97b2824ada
Add copy_within to the SB trophy case 2021-05-27 00:14:13 +00:00
Diana
67ec0a5ce3 Fix dead self-link 2021-05-03 22:52:09 -04:00
Ralf Jung
6834944fd3 fix MIRI_BE_RUSTC value during sysroot build 2021-04-18 12:29:31 +02:00
Ralf Jung
87882f2c6a add the bad doctests we found to the trophy case 2021-04-10 12:33:18 +02:00
bors
b9b2af9729 Auto merge of #1764 - RalfJung:readme, r=RalfJung
fix typo in README

"you program" → "your program"
2021-04-09 09:29:48 +00:00
Ralf Jung
0a7a41f6ad fix typo in README 2021-04-09 11:24:33 +02:00
hyd-dev
3dff1d4fcd
Don't use MIRI_DEFAULT_ARGS to compile host crates 2021-04-09 00:57:59 +08:00
Ralf Jung
a760aab828 mention 'cargo miri test filter' in README 2021-04-07 10:09:42 +02:00
Tristan Dannenberg
4fccde54ac make cargo-miri run doc-tests 2021-04-05 11:48:17 +02:00
Johnathan Van Why
12005612ab
README.md: Apply RalfJung's suggestion
`-Zmiri-track-raw-pointers` isn't *much* more restrictive than normal Stacked Borrows.

Co-authored-by: Ralf Jung <post@ralfj.de>
2021-03-24 16:20:54 -07:00
Johnathan Van Why
03be4138ed -Zmiri-track-raw-pointers doc correction: it is not strictly more restrictive than Stacked Borrows.
This change is based on the following comment:
https://github.com/rust-lang/miri/pull/1748#issuecomment-803279473
2021-03-22 15:35:18 -07:00
Johnathan Van Why
263be25484 Improvements to the README item on -Zmiri-track-raw-pointers.
1. The double quotes around <untagged> are changed to backspaces, so <untagged>
   will render correctly in markdown.
2. Clarify that -Zmiri-track-raw-pointers will never accept code that Miri
   would not have accepted without -Zmiri-track-raw-pointers.
2021-03-19 09:27:36 -07:00
Oli Scherer
397443093d
Update README.md 2021-01-30 20:06:05 +01:00
Oli Scherer
bd04091a16
Update README.md
Co-authored-by: Ralf Jung <post@ralfj.de>
2021-01-30 20:05:21 +01:00
Oli Scherer
35ece43ef7
Document -Zmiri-compare-exchange-weak-failure-rate 2021-01-28 10:58:33 +01:00
Ralf Jung
056016571f add -Zmiri-disable-data-race-detector to readme 2021-01-24 15:58:37 +01:00
Ralf Jung
4a13f24839 expand README 2021-01-23 16:54:00 +01:00
Ralf Jung
e204c0fbab link to our shiny new Zulip stream 2020-12-21 14:39:18 +01:00
Ralf Jung
27a518e166 enable track-raw-ptr tests on Windows 2020-12-11 11:28:33 +01:00
Jonah Williams
789c8a006b
Fix README.md typo "extend" -> "extent"
Just something I noticed while reading
2020-12-06 17:54:59 -08:00
Ralf Jung
7fb012fdb2 readme: mention data races, and mention cross-interpretation already in the intro 2020-12-05 12:14:52 +01:00
Ralf Jung
d697de7538 update README 2020-11-29 20:54:56 +01:00
Ralf Jung
7eaba6684c fix trophy case URL 2020-10-31 16:28:56 +01:00
Camelid
02af2a38ac
Fix link in README 2020-10-29 16:14:54 -07:00
bors
c3a84c1ca8 Auto merge of #1606 - RalfJung:trophy, r=oli-obk
update trophy case
2020-10-28 13:40:51 +00:00
bors
83f7657ed0 Auto merge of #1603 - RalfJung:track-raw, r=oli-obk
add an option to track raw pointer tags in Stacked Borrows

Also make error messages more informative by printing the affected memory location
2020-10-28 13:19:25 +00:00
Ralf Jung
2589b48251 update trophy case 2020-10-28 14:05:37 +01:00
Ralf Jung
70af7aed88 expand flag docs 2020-10-28 13:03:46 +01:00
Ralf Jung
00c4869d56 remove outdated CI badges 2020-10-28 12:57:41 +01:00
Ralf Jung
194451345d add an option to track raw pointer tags in Stacked Borrows 2020-10-28 12:23:35 +01:00
Camelid
8df239b020 Fix README 2020-10-23 11:53:34 -07:00
bors
158639c985 Auto merge of #1590 - RalfJung:trophy, r=RalfJung
another TiKV bug for the trophy case :)

Cc `@brson` thanks for the ping!
2020-10-22 07:46:10 +00:00
Ralf Jung
0835ac6ec3 another TiKV bug for the trophy case :) 2020-10-21 12:50:45 +02:00
Aaron Hill
05bb560de2
Enable backtrace feature in the generated Xargo.toml
This allows the normal std panic hook to print a backtrace if
`RUST_BACKTRACE=1` and `-Z miri-disable-isolation` are set
2020-10-20 18:27:55 -04:00
bors
8beccc4bef Auto merge of #1581 - RalfJung:readme, r=RalfJung
README: make our cross-interpretation feature stand out more

This is a great feature, let's hope more people notice it :)
2020-10-11 22:56:39 +00:00
bors
73d5c42076 Auto merge of #1580 - Aaron1011:feature/backtrace-fn-ptr, r=RalfJung
Add an `fn_ptr` field to `MiriFrame`

The `backtrace-rs` crate can use this to implement
`Frame::symbol_address`, which is used to skip frames
above the call to `Backtrace::capture` on the stack.

The function pointer will not be useable for comparison purposes if the
function is generic, as CTFE creates a new function pointer for each
cast of a (monomorphized) generic function. However, this already
affects code running under Miri, and isn't a problem for `backtrace-rs`
(which only casts a non-generic function).

I've added logic to allow `MiriFrame` to have either 4 or 5 fields - if
a 5th field is present, we write the function pointer to it.
2020-10-11 22:34:57 +00:00
Ralf Jung
3bdf2bccae
Improve wording
Co-authored-by: Aaron Hill <aa1ronham@gmail.com>
2020-10-12 00:15:01 +02:00
bors
c467345bb0 Auto merge of #1571 - lzutao:actions, r=RalfJung
Adding a working github actions template

Complete adding github actions whose dummy template added in #1563 .

But it will need https://github.com/rust-lang/rust-central-station/pull/939 merged first
to be able to gate bors on Actions CI checks.
2020-10-11 22:07:25 +00:00
Lzu Tao
6acde94931 Add a working github actions template 2020-10-11 18:32:12 +07:00
Ralf Jung
71e0e59b63 README: make our cross-interpretation feature stand out more 2020-10-11 10:49:59 +02:00
Aaron Hill
be51e6bd07
Add an fn_ptr field to MiriFrame
The `backtrace-rs` crate can use this to implement
`Frame::symbol_address`, which is used to skip frames
above the call to `Backtrace::capture` on the stack.

The function pointer will not be useable for comparison purposes if the
function is generic, as CTFE creates a new function pointer for each
cast of a (monomorphized) generic function. However, this already
affects code running under Miri, and isn't a problem for `backtrace-rs`
(which only casts a non-generic function).

I've added logic to allow `MiriFrame` to have either 4 or 5 fields - if
a 5th field is present, we write the function pointer to it.
2020-10-10 13:07:57 -04:00
Yonggang Luo
e6665109e0
Update README.md
Note however that
[leak checking is currently disabled on Windows targets](https://github.com/rust-lang/miri/issues/1302).

Windows issue are fixed
2020-10-09 13:16:03 +08:00
Ralf Jung
b1837d0bc9
fix typo 2020-09-28 13:44:46 -04:00
Aaron Hill
5571bcfc4f
Require #[repr(C)] on MiriFrame 2020-09-28 13:44:46 -04:00
Aaron Hill
11e2dbd51c
Update README 2020-09-28 13:44:45 -04:00