-
Notifications
You must be signed in to change notification settings - Fork 386
Enable leak checker on Windows #1302
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
rust-lang/rust#70765 should fix this. |
See #1318 for the general issue with the leak checker and ptr-int casts (but just to get basic Windows support in the leak checker, a more targeted solution could suffice). |
I thought implementing SRWLock would fix this, but there are unfortunately still some leaks left:
Both of these are allocated in |
Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows This PR realizes an idea that @oli-obk has been suggesting for a while: to use Miri-specific `extern` functions to provide some extra capabilities to the program. Initially, we have two of these methods, which libstd itself needs: * `miri_start_panic`, which replaces the intrinsic of the same name (mostly for consistency, to avoid having multiple mechanisms for Miri-specific functionality). * `miri_static_root`, which adds an allocation to a list of static "roots" that Miri considers as not having leaked (including all memory reachable through them). This is needed for rust-lang/miri#1302. We use `extern` functions instead of intrinsics for this so that user code can more easily call these Miri hoolks -- e.g. `miri_static_root` should be useful for rust-lang/miri#1318. The Miri side of this is at rust-lang/miri#1485. r? @oli-obk
Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows This PR realizes an idea that @oli-obk has been suggesting for a while: to use Miri-specific `extern` functions to provide some extra capabilities to the program. Initially, we have two of these methods, which libstd itself needs: * `miri_start_panic`, which replaces the intrinsic of the same name (mostly for consistency, to avoid having multiple mechanisms for Miri-specific functionality). * `miri_static_root`, which adds an allocation to a list of static "roots" that Miri considers as not having leaked (including all memory reachable through them). This is needed for rust-lang/miri#1302. We use `extern` functions instead of intrinsics for this so that user code can more easily call these Miri hoolks -- e.g. `miri_static_root` should be useful for rust-lang/miri#1318. The Miri side of this is at rust-lang/miri#1485. r? @oli-obk
Note however that [leak checking is currently disabled on Windows targets](rust-lang#1302). Windows issue are fixed
Update README.md Note however that [leak checking is currently disabled on Windows targets](#1302). Windows issue are fixed
Uh oh!
There was an error while loading. Please reload this page.
Currently, the leak checker is disabled on Windows. This is because even a NOP program reports a leak:
This leak is caused by static
sys:common::mutex::Mutex
, which store a pointer to some Rust heap allocation, cast to an integer (so even with #940 resolved, we do not "see" the pointer).Even on a Windows host, you can avoid this problem by cross-running your program with
--target x86_64-unknown-linux-gnu
.The text was updated successfully, but these errors were encountered: