Test MDX File V7
C++ Exception Lab
Section titled “C++ Exception Lab”Run scenario 3 · RAII unwinding and watch ~Resource() fire during the unwind — that’s the foundation of std::unique_ptr and std::lock_guard. Now run scenario 7 · noexcept violation: the same throw with the same local Resource never gets a destructor call — noexcept is a contract, not a hint, and breaking it skips cleanup entirely. Compare scenarios 3 and 4: identical code in f(), but whether main() catches decides between graceful recovery and std::terminate
C++ Exception Lab
Step through throws, catches, unwinding, and terminate — see what really happens to the stack.
Rust Ownership Lab
Section titled “Rust Ownership Lab”Rust Ownership Lab
Move, clone, copy — and watch the compiler track who owns the heap.
Rust Borrow Lab
Section titled “Rust Borrow Lab”Rust Borrowing Lab
Move ownership, share a reference, or take an exclusive one — and watch the rules play out.
Rust Lifetime Lab
Section titled “Rust Lifetime Lab”Rust Lifetime Lab
See what the compiler sees: which references are valid, for how long, and why a dangling pointer never escapes Rust alive.
Rust Box Lab
Section titled “Rust Box Lab”Rust Box Lab
Put a value on the heap, write through the box, move ownership — and watch Rust free it for you.
Rust Slice Lab
Section titled “Rust Slice Lab”Rust Slice Lab
View a range of someone else's allocation. See exactly where slices succeed and where they don't.
Rc Lab
Section titled “Rc Lab”Rust Rc Lab
Share one heap allocation between many owners. Watch the strong count tell you when the data dies.
TraitObject Lab
Section titled “TraitObject Lab”Rust Trait Object Lab
A trait object is a fat pointer — and the second half points at a vtable. Step through the dispatch to see how.
© 2026 Derek Molloy, Dublin City University. All rights reserved.